/* Sharm Voyager Booking Engine - frontend styles (Cassiopeia compatible, mobile first) */
.sv-engine {
  --sv-accent: #e8892b;
  --sv-accent-dark: #c4661a;
  --sv-accent-soft: #fdf1e4;
  --sv-ink: #1f2933;
  --sv-muted: #5f6b76;
  --sv-line: #e6e1da;
  --sv-card: #fff;
  --sv-ok: #1f8a4c;
  --sv-radius: 12px;
  color: var(--sv-ink);
  max-width: 1200px;
  margin: 0 auto;
}
.sv-title { font-size: clamp(1.5rem, 3vw, 2.1rem); margin: .25rem 0 1rem; }
.sv-h2 { font-size: 1.3rem; margin: 1.75rem 0 .75rem; display: flex; align-items: center; gap: .5rem; }
.sv-h3 { font-size: 1.1rem; margin: 1rem 0 .5rem; }
.sv-h4 { font-size: 1rem; margin: 1rem 0 .4rem; color: var(--sv-accent-dark); }
.sv-step { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--sv-accent); color: #fff; font-size: .95rem; font-weight: 700; }
.sv-muted { color: var(--sv-muted); }
.sv-card { background: var(--sv-card); border: 1px solid var(--sv-line); border-radius: var(--sv-radius); padding: 1rem; box-shadow: 0 2px 10px rgba(31, 41, 51, .05); margin-bottom: 1rem; }
.sv-grid { display: grid; grid-template-columns: 1fr; gap: .75rem 1rem; }
@media (min-width: 640px) { .sv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sv-span2 { grid-column: span 2; } }
@media (min-width: 992px) { .sv-search .sv-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sv-field label, .sv-room label, .sv-options label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: .25rem; }
.sv-room label .form-select, .sv-options label .form-select, .sv-field label .form-control, .sv-field label .form-select { font-weight: 400; margin-top: .25rem; }
.sv-hint { color: var(--sv-muted); display: block; min-height: 1.1em; }
.sv-search { border-top: 4px solid var(--sv-accent); }
.sv-rooms { border: 0; padding: 0; margin: 1rem 0 0; }
.sv-rooms legend { font-size: 1rem; font-weight: 700; }
.sv-room { background: var(--sv-accent-soft); border-radius: 10px; padding: .75rem; margin-bottom: .6rem; }
.sv-room-title { font-weight: 700; margin-bottom: .4rem; }
.sv-room-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
@media (min-width: 768px) { .sv-room-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sv-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.sv-engine .btn.sv-btn-primary, .sv-btn-primary {
  --btn-bg: var(--sv-accent, #e8892b); --btn-border-color: var(--sv-accent, #e8892b); --btn-color: #fff;
  --btn-hover-bg: var(--sv-accent-dark, #c4661a); --btn-hover-border-color: var(--sv-accent-dark, #c4661a); --btn-hover-color: #fff;
  --btn-active-bg: var(--sv-accent-dark, #c4661a); --btn-active-color: #fff;
  background-color: var(--sv-accent, #e8892b); border-color: var(--sv-accent, #e8892b); color: #fff; font-weight: 700; padding-inline: 1.4rem;
}
.sv-engine .btn.sv-btn-primary:hover, .sv-engine .btn.sv-btn-primary:focus { background-color: var(--sv-accent-dark); border-color: var(--sv-accent-dark); color: #fff; }
.sv-engine .btn.sv-btn-primary:disabled { opacity: .6; }
.sv-unavailable { margin-top: .5rem; }
.sv-unavailable summary { cursor: pointer; color: var(--sv-muted); padding: .5rem 0; }
.sv-unavailable .sv-hotel { grid-template-columns: 1fr; }
.sv-unavailable .sv-hotel-img { display: none; }
.sv-status:empty { display: none; }
.sv-spinner { display: inline-block; width: 1rem; height: 1rem; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: svspin .8s linear infinite; vertical-align: -2px; }
@keyframes svspin { to { transform: rotate(360deg); } }
.sv-badge { display: inline-block; font-size: .75rem; padding: .1rem .45rem; border-radius: 999px; background: #eef1f4; color: var(--sv-muted); font-weight: 600; }
.sv-direct { background: #e3f4ea; color: var(--sv-ok); }
.sv-promo { background: #fff0d6; color: var(--sv-accent-dark); }
.sv-stars { color: #f0a500; letter-spacing: 1px; font-size: .95em; }

/* flights */
.sv-flights { display: grid; gap: .6rem; }
.sv-flight { display: grid; grid-template-columns: auto 1fr; gap: .5rem .75rem; align-items: start; background: var(--sv-card); border: 2px solid var(--sv-line); border-radius: var(--sv-radius); padding: .75rem; cursor: pointer; margin: 0; }
.sv-flight.is-selected { border-color: var(--sv-accent); box-shadow: 0 0 0 3px var(--sv-accent-soft); }
.sv-flight input { margin-top: .35rem; accent-color: var(--sv-accent); }
.sv-flights.is-single .sv-flight { grid-template-columns: 1fr; cursor: default; }
.sv-flights.is-single .sv-flight input { display: none; }
@media (min-width: 768px) { .sv-flights.is-single .sv-flight { grid-template-columns: 1fr 180px; } }
.sv-flight-body { display: grid; gap: .4rem; }
.sv-badge.sv-best { justify-self: start; background: var(--sv-accent); color: #fff; }
.sv-alt { margin-top: .25rem; }
.sv-alt > summary { cursor: pointer; font-weight: 600; padding: .5rem 0; color: var(--sv-accent); }
.sv-alt > .sv-flights { margin-top: .4rem; }
.sv-flight-price { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: .5rem; border-top: 1px dashed var(--sv-line); padding-top: .4rem; }
.sv-flight-price strong { font-size: 1.25rem; }
@media (min-width: 768px) {
  .sv-flight { grid-template-columns: auto 1fr 180px; }
  .sv-flight-price { grid-column: auto; flex-direction: column; align-items: flex-end; border-top: 0; border-left: 1px dashed var(--sv-line); padding: 0 0 0 .75rem; }
}
.sv-leg { display: flex; flex-wrap: wrap; gap: .25rem .75rem; align-items: baseline; }
.sv-leg-label { font-weight: 700; min-width: 4.5rem; color: var(--sv-accent-dark); }
.sv-leg-date { color: var(--sv-muted); }
.sv-leg-meta { color: var(--sv-muted); font-size: .9rem; width: 100%; }
@media (min-width: 992px) { .sv-leg-meta { width: auto; } }

/* hotels */
.sv-hotels { display: grid; gap: .8rem; }
.sv-hotel { display: grid; grid-template-columns: 1fr; background: var(--sv-card); border: 1px solid var(--sv-line); border-radius: var(--sv-radius); overflow: hidden; }
.sv-hotel.is-na { opacity: .7; }
.sv-hotel-img img, .sv-noimg { width: 100%; height: 190px; object-fit: cover; display: block; background: #eee; }
.sv-hotel-info { padding: .75rem 1rem; }
.sv-hotel-info h3 { font-size: 1.15rem; margin: 0 0 .25rem; }
.sv-hotel-info h3 a { color: inherit; text-decoration: none; }
.sv-hotel-offer { display: grid; gap: .5rem; }
.sv-hotel-price strong { font-size: 1.4rem; color: var(--sv-accent-dark); }
.sv-hotel-price small { display: block; color: var(--sv-muted); }
.sv-hotel-na { color: #9b2c2c; font-size: .95rem; }
@media (min-width: 768px) {
  .sv-hotel { grid-template-columns: 260px 1fr; }
  .sv-hotel-img img, .sv-noimg { height: 100%; min-height: 180px; }
  .sv-hotel-offer { grid-template-columns: 1fr auto auto; align-items: end; }
}

/* quote */
.sv-quote-layout { display: grid; gap: 1rem; }
@media (min-width: 992px) { .sv-quote-layout { grid-template-columns: 320px 1fr; align-items: start; } .sv-options { position: sticky; top: 1rem; } }
.sv-options label { margin-bottom: .6rem; }
.sv-options fieldset { border: 0; padding: 0; margin: .5rem 0; }
.sv-options legend { font-size: .95rem; font-weight: 700; }
.sv-dl { display: grid; grid-template-columns: 1fr; margin: 0; }
.sv-dl dt { font-weight: 700; color: var(--sv-accent-dark); margin-top: .5rem; }
.sv-dl dd { margin: 0; }
@media (min-width: 640px) { .sv-dl { grid-template-columns: 9rem 1fr; gap: .35rem .75rem; } .sv-dl dt { margin: 0; } }
.sv-price { width: 100%; border-collapse: collapse; }
.sv-price td { padding: .4rem 0; border-bottom: 1px solid var(--sv-line); }
.sv-price td:last-child { text-align: right; white-space: nowrap; }
.sv-price .sv-total td { font-size: 1.3rem; font-weight: 800; border-top: 2px solid var(--sv-accent); border-bottom: 0; }
.sv-included { padding-left: 1.2rem; margin: 0; }
.sv-notes { font-size: .85rem; color: var(--sv-muted); padding-left: 1.1rem; margin-top: .75rem; }
.sv-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* catalogue */
.sv-cards { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .sv-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .sv-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sv-cardx { background: var(--sv-card); border: 1px solid var(--sv-line); border-radius: var(--sv-radius); overflow: hidden; display: flex; flex-direction: column; }
.sv-cardx-img img { width: 100%; height: 210px; object-fit: cover; display: block; transition: transform .3s; }
.sv-cardx-img { overflow: hidden; display: block; background: #eee; min-height: 120px; }
.sv-cardx:hover .sv-cardx-img img { transform: scale(1.03); }
.sv-cardx-body { padding: .9rem 1rem 1rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.sv-cardx-title { font-size: 1.15rem; margin: 0; }
.sv-cardx-title a { color: inherit; text-decoration: none; }
.sv-cardx-actions { margin-top: auto; display: flex; gap: .5rem; flex-wrap: wrap; }
.sv-cardx-price { font-weight: 700; color: var(--sv-accent-dark); }
.sv-hotel-top { display: grid; gap: 1rem; }
@media (min-width: 992px) { .sv-hotel-top { grid-template-columns: 1fr 320px; align-items: start; } }
.sv-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; margin-bottom: 1rem; }
.sv-gallery-item { display: block; overflow: hidden; border-radius: 8px; }
.sv-gallery-item img { width: 100%; height: 90px; object-fit: cover; display: block; }
.sv-gallery-item.is-main { grid-column: 1 / -1; }
.sv-gallery-item.is-main img { height: clamp(220px, 45vw, 440px); }
.sv-services { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 1rem 0; }
.sv-services li { background: var(--sv-accent-soft); border-radius: 999px; padding: .3rem .8rem; font-size: .9rem; }
.sv-description { line-height: 1.6; margin: 1rem 0; }
.sv-map iframe { width: 100%; height: 280px; border: 0; border-radius: var(--sv-radius); }

/* print: only the quote */
@media print {
  body * { visibility: hidden; }
  .sv-printable, .sv-printable * { visibility: visible; }
  .sv-printable { position: absolute; left: 0; top: 0; width: 100%; border: 0; box-shadow: none; }
  .sv-noprint { display: none !important; }
}

/* 1.0.6 homepage offers module (mod_svbooking_offers) */
.sv-offers { --sv-cols: 3; }
.sv-offers-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
@media (min-width: 992px) { .sv-offers-grid { grid-template-columns: repeat(var(--sv-cols), 1fr); } }
.sv-offer { display: flex; flex-direction: column; background: var(--sv-card); border: 1px solid var(--sv-line); border-radius: var(--sv-radius); overflow: hidden; color: var(--sv-ink); }
.sv-offer-img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; background: var(--sv-accent-soft); }
.sv-offer-body { padding: .85rem 1rem; display: grid; gap: .3rem; flex: 1; }
.sv-offer-hotel { font-weight: 700; font-size: 1.05rem; margin: 0; }
.sv-offer-meta { color: var(--sv-muted); font-size: .9rem; }
.sv-offer-price { margin-top: auto; display: grid; gap: 0; border-top: 1px dashed var(--sv-line); padding-top: .5rem; }
.sv-offer-price > span:first-child { font-size: .85rem; }
.sv-offer-price strong { font-size: 1.45rem; color: var(--sv-accent-dark); }
.sv-offer-foot { padding: 0 1rem 1rem; display: grid; gap: .35rem; }
.sv-offer-updated { font-size: .78rem; color: var(--sv-muted); }
.sv-offer .sv-btn-primary { width: 100%; }

/* 1.2.3 checked bags: outbound / return chosen separately */
.sv-options fieldset.sv-bags { margin: .9rem 0; padding: .85rem; border: 1px solid var(--sv-line); border-radius: var(--sv-radius); background: var(--svt-sea-soft, #eef7fb); }
.sv-bags legend { float: left; width: 100%; margin: 0 0 .15rem; padding: 0; }
.sv-bags .sv-hint { font-size: .82rem; margin: 0 0 .55rem; min-height: 0; }
.sv-bag { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label step" "label sub"; align-items: center; gap: .15rem .6rem; padding: .55rem 0; border-top: 1px dashed var(--sv-line); }
.sv-bag-label { grid-area: label; min-width: 0; }
.sv-options .sv-bag-label label { margin: 0; font-size: .92rem; }
.sv-bag-label small { display: block; color: var(--sv-muted); font-size: .8rem; }
.sv-stepper { grid-area: step; display: inline-flex; align-items: center; border: 1px solid var(--sv-line); border-radius: 999px; background: #fff; overflow: hidden; }
.sv-step-btn { width: 2.25rem; height: 2.25rem; border: 0; background: transparent; color: var(--svt-sea-d, #08698a); font-size: 1.2rem; font-weight: 700; line-height: 1; cursor: pointer; }
.sv-step-btn:hover:not(:disabled) { background: var(--svt-sea-soft, #e5f4f9); }
.sv-step-btn:disabled { color: #c3c8cf; cursor: default; }
.sv-step-btn:focus-visible { outline: 2px solid var(--svt-sea, #0b8db5); outline-offset: -2px; }
.sv-stepper input { width: 2.4rem; height: 2.25rem; border: 0; text-align: center; font-weight: 700; font-size: 1rem; -moz-appearance: textfield; appearance: textfield; background: transparent; padding: 0; }
.sv-stepper input::-webkit-outer-spin-button, .sv-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.sv-bag-sub { grid-area: sub; justify-self: end; font-size: .85rem; font-weight: 600; color: var(--sv-ink); }
.sv-bag-total { display: flex; justify-content: space-between; gap: .5rem; padding-top: .55rem; border-top: 1px solid var(--sv-line); font-size: .92rem; }
.sv-bag-total strong { color: var(--svt-orange-d, var(--sv-accent-dark)); }
.sv-quote.is-updating { opacity: .55; transition: opacity .15s; }
.sv-price td small { display: block; color: var(--sv-muted); font-size: .8rem; }

/* 1.2.3 offers on the Volo + Hotel page */
.sv-pageoffers { margin-top: 2.25rem; }
.sv-pageoffers-head { margin-bottom: 1rem; }
.sv-pageoffers-kicker { margin: 0; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--svt-sea, #0b8db5); }
.sv-pageoffers-title { margin: .15rem 0 .35rem; font-size: clamp(1.35rem, 2.6vw, 1.85rem); font-family: var(--svt-font-h, inherit); }
.sv-pageoffers-head .sv-muted { margin: 0; max-width: 60ch; }
.sv-pageoffers-grid { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); }
.sv-poffer { display: flex; flex-direction: column; min-width: 0; background: var(--sv-card); border: 1px solid var(--svt-line, var(--sv-line)); border-radius: var(--svt-r, 16px); overflow: hidden; box-shadow: var(--svt-shadow, 0 6px 22px rgba(31, 41, 51, .08)); transition: transform .2s, box-shadow .2s; }
.sv-poffer:hover { transform: translateY(-3px); box-shadow: var(--svt-shadow-h, 0 14px 34px rgba(31, 41, 51, .14)); }
.sv-poffer-media { position: relative; aspect-ratio: 16 / 10; background: linear-gradient(135deg, var(--svt-sea, #0b8db5), #4cc3d9); }
.sv-poffer-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sv-poffer-noimg { position: absolute; inset: 0; background: radial-gradient(circle at 75% 30%, rgba(255, 196, 120, .9) 0 14%, transparent 15%), linear-gradient(180deg, transparent 58%, rgba(255, 255, 255, .25) 58% 62%, transparent 62%); }
.sv-poffer-dest, .sv-poffer-nights { position: absolute; top: .7rem; padding: .28rem .65rem; border-radius: 999px; font-size: .78rem; font-weight: 700; line-height: 1.2; }
.sv-poffer-dest { left: .7rem; background: rgba(255, 255, 255, .94); color: var(--svt-sea-d, #08698a); }
.sv-poffer-nights { right: .7rem; background: var(--svt-orange, #fd7a00); color: #fff; }
.sv-poffer-body { display: flex; flex-direction: column; gap: .7rem; padding: 1rem 1.05rem 1.1rem; flex: 1; }
.sv-poffer-hotel { margin: 0; font-size: 1.08rem; line-height: 1.3; font-family: var(--svt-font-h, inherit); }
.sv-poffer-stars { color: #f2a51a; font-size: .85rem; letter-spacing: .05em; white-space: nowrap; }
.sv-poffer-facts { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; font-size: .88rem; }
.sv-poffer-facts li { display: flex; justify-content: space-between; gap: .75rem; }
.sv-poffer-facts span { color: var(--sv-muted); }
.sv-poffer-facts strong { font-weight: 600; text-align: right; }
.sv-poffer-price { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; padding-top: .7rem; border-top: 1px dashed var(--svt-line, var(--sv-line)); }
.sv-poffer-price small { display: block; color: var(--sv-muted); font-size: .76rem; }
.sv-poffer-price strong { font-size: 1.55rem; line-height: 1.1; color: var(--svt-orange-d, var(--sv-accent-dark)); font-family: var(--svt-font-h, inherit); }
.sv-poffer-total { text-align: right; }
.sv-poffer-total span { font-weight: 700; }
.sv-poffer-cta { width: 100%; }
.sv-poffer-checked { margin: 0; font-size: .74rem; color: var(--sv-muted); }
.sv-pageoffers-note { margin: .9rem 0 0; font-size: .82rem; color: var(--sv-muted); }
.sv-pageoffers-empty { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem; border-radius: var(--svt-r, 16px); background: linear-gradient(135deg, var(--svt-sea-soft, #e5f4f9), var(--svt-sand, #fbf6ee)); border: 1px solid var(--svt-line, var(--sv-line)); }
.sv-pageoffers-empty-ico { flex: none; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #fff; color: var(--svt-sea, #0b8db5); box-shadow: 0 2px 8px rgba(11, 141, 181, .15); }
.sv-pageoffers-empty strong { font-size: 1.05rem; }
.sv-pageoffers-empty p { margin: .25rem 0 .75rem; color: var(--sv-muted); }
@media (max-width: 480px) { .sv-pageoffers-empty { flex-direction: column; } }

/* ---------- 1.3.0 preventivo via email, richiesta di conferma, pagina della pratica ---------- */
.sv-quote-actions { flex-wrap: wrap; gap: .5rem; align-items: center; }
.sv-mailbox { margin-top: .75rem; max-width: 640px; }
.sv-mailbox-row { display: flex; gap: .5rem; flex-wrap: wrap; }
.sv-mailbox-row input { flex: 1 1 240px; min-width: 0; }
.sv-confirm .sv-cf-intro, .sv-practice .alert { line-height: 1.5; }
.sv-cf-summary, .sv-cf-form, .sv-practice .sv-card { margin-bottom: 1.25rem; }
.sv-cf-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .5rem 1rem; margin: 0 0 1rem; }
.sv-cf-facts div { background: #f8f6f2; border-radius: 8px; padding: .55rem .75rem; }
.sv-cf-facts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: #6b7280; font-weight: 600; }
.sv-cf-facts dd { margin: 0; font-weight: 600; }
.sv-cf-table { width: 100%; border-collapse: collapse; margin: 0 0 1rem; font-size: .95rem; }
.sv-cf-table th { text-align: left; vertical-align: top; width: 34%; padding: .45rem .6rem; background: #faf6f0; border-bottom: 1px solid #eee3d3; font-weight: 600; }
.sv-cf-table td { padding: .45rem .6rem; border-bottom: 1px solid #eef0f2; }
.sv-cf-price td { text-align: right; white-space: nowrap; }
.sv-cf-total th, .sv-cf-total td { font-size: 1.1rem; font-weight: 700; border-top: 2px solid #e26a00; }
.sv-cf-plan { padding-left: 1.1rem; }
.sv-cf-pax { border: 1px solid #e5e7eb; border-radius: 10px; padding: .75rem 1rem; margin: 0 0 .9rem; }
.sv-cf-pax legend { float: none; width: auto; font-size: 1rem; font-weight: 600; padding: 0 .35rem; margin: 0; }
.sv-cf-doc { margin: .5rem 0 1rem; }
.sv-cf-doc summary { cursor: pointer; font-weight: 600; color: #08687a; }
.sv-cf-needs { border: 0; padding: 0; margin: 0 0 1rem; }
.sv-cf-docs { padding-left: 1.1rem; margin-bottom: .75rem; }
.sv-confirm .form-check { margin-bottom: .35rem; }
.sv-pr-steps { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0 0 1.25rem; }
.sv-pr-steps li { display: flex; align-items: center; gap: .4rem; background: #f3f4f6; color: #4b5563; border-radius: 999px; padding: .35rem .8rem; font-size: .9rem; }
.sv-pr-steps li.is-done { background: #e6f4ea; color: #1b5e33; font-weight: 600; }
.sv-pr-dot { display: inline-flex; width: 1.25rem; height: 1.25rem; border-radius: 50%; align-items: center; justify-content: center; background: #fff; border: 1px solid currentColor; font-size: .75rem; }
.sv-pr-files { padding-left: 1.1rem; }
.sv-pr-files li { margin: .25rem 0; }
@media (max-width: 600px) {
  .sv-cf-table th { width: 42%; }
  .sv-quote-actions .btn { flex: 1 1 100%; }
}
@media print { .sv-mailbox, .sv-quote-actions { display: none !important; } }

/* ===================== 1.3.7 – riepilogo del preventivo Volo + Hotel e «Il tuo pacchetto comprende» ===================== */
.svq { --q-o: #FD7A00; --q-od: #E26A00; --q-os: #FFF1E2; --q-sea: #0B8DB5; --q-sead: #08698A; --q-seas: #E5F4F9; --q-ink: #262A30; --q-mut: #667080; --q-line: #E4E6EA; --q-sand: #FBF6EE; --q-ok: #1f8a4c; --q-oks: #E7F5EC;
  color: var(--q-ink); font-size: 1rem; line-height: 1.5; }
.svq-ic { width: 22px; height: 22px; flex: none; }
.svq-ic--s { width: 16px; height: 16px; }
.svq-hd { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.1rem; }
.svq-h { font-family: var(--svt-font-h, inherit); font-weight: 600; font-size: 1.55rem; line-height: 1.2; margin: 0; }
.svq-sub { color: var(--q-mut); font-size: .9rem; margin-top: .25rem; }
.svq-pill { display: inline-flex; align-items: center; gap: .35rem; border-radius: 999px; padding: .3rem .75rem; font-size: .82rem; font-weight: 600; white-space: nowrap; }
.svq-pill--o { background: var(--q-os); color: var(--q-od); }
.svq-pill--s { background: var(--q-seas); color: var(--q-sead); white-space: normal; }
.svq-pill--g { background: #F4F5F7; color: var(--q-ink); }
.svq-kick { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .09em; color: var(--q-mut); margin: 1.6rem 0 .75rem; display: flex; align-items: center; gap: .6rem; }
.svq-kick::after { content: ""; height: 1px; background: var(--q-line); flex: 1; }
.svq-trip { border: 1px solid var(--q-line); border-radius: 16px; overflow: hidden; }
.svq-leg { display: grid; grid-template-columns: 8rem 1fr auto; gap: 1rem; align-items: center; padding: 1rem 1.1rem; border-bottom: 1px solid var(--q-line); }
.svq-lbl { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--q-sea); }
.svq-d { font-size: .88rem; color: var(--q-mut); }
.svq-route { display: flex; align-items: center; gap: .75rem; }
.svq-route b { font-family: var(--svt-font-h, inherit); font-weight: 600; font-size: 1.25rem; line-height: 1; }
.svq-route span { display: block; font-size: .8rem; color: var(--q-mut); margin-top: .25rem; }
.svq-route .svq-r { text-align: right; }
.svq-line { flex: 1; min-width: 2.5rem; height: 2px; position: relative; background: repeating-linear-gradient(90deg, #BFD9E3 0 6px, transparent 6px 11px); }
.svq-line .svq-ic { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 18px; height: 18px; color: var(--q-sea); background: #fff; padding: 1px; }
.svq-stay { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: 1rem 1.1rem; background: var(--q-sand); }
.svq-stay .svq-lbl { color: var(--q-od); }
.svq-t { font-weight: 600; }
.svq-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.svq-extra { list-style: none; margin: .5rem 0 0; padding: 0; font-size: .85rem; color: var(--q-mut); }
.svq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.svq-svc { display: flex; gap: .85rem; padding: 1rem; border: 1px solid var(--q-line); border-radius: 14px; background: #fff; }
.svq-bub { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--q-seas); color: var(--q-sead); flex: none; }
.svq-svc.is-hl .svq-bub { background: var(--q-os); color: var(--q-od); }
.svq-svc h5, .svq-bag h5 { margin: 0; font-family: var(--svt-font-h, inherit); font-weight: 600; font-size: 1rem; line-height: 1.3; }
.svq-svc p, .svq-bag p { margin: .2rem 0 0; font-size: .85rem; color: var(--q-mut); line-height: 1.45; }
.svq-tag { display: inline-block; margin-top: .4rem; font-size: .72rem; font-weight: 600; color: var(--q-od); background: var(--q-os); border-radius: 99px; padding: .1rem .55rem; }
.svq-bagcard { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #CFE7F0; border-radius: 14px; overflow: hidden; }
.svq-bagcard > :only-child { grid-column: 1 / -1; }
.svq-bag { display: flex; gap: .85rem; padding: 1rem; background: #fff; }
.svq-bag + .svq-bag { border-left: 1px dashed #9FCFE0; }
.svq-bag--inc .svq-bub, .svq-bag--included .svq-bub { background: var(--q-oks); color: var(--q-ok); }
.svq-bag--add, .svq-bag--chosen, .svq-bag--no { background: var(--q-seas); }
.svq-bag--add .svq-bub, .svq-bag--chosen .svq-bub, .svq-bag--no .svq-bub { background: #fff; color: var(--q-sea); }
.svq-st { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--q-sead); }
.svq-bag--inc .svq-st, .svq-bag--included .svq-st { color: var(--q-ok); }
.svq-bag a { display: inline-block; margin-top: .35rem; color: var(--q-sead); font-weight: 600; font-size: .85rem; text-decoration: none; }
.svq-bag a:hover, .svq-bag a:focus-visible { text-decoration: underline; }
.svq-two { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: .75rem; }
.svq-two > :only-child { grid-column: 1 / -1; }
.svq-mini { border-radius: 14px; padding: .85rem 1rem; border: 1px solid var(--q-line); }
.svq-mini h6 { margin: 0 0 .5rem; font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; display: flex; align-items: center; gap: .5rem; }
.svq-mini ul { list-style: none; margin: 0; padding: 0; }
.svq-mini li { display: flex; gap: .5rem; font-size: .9rem; padding: .25rem 0; }
.svq-mini li .svq-ic, .svq-mini h6 .svq-ic { width: 16px; height: 16px; margin-top: .2rem; }
.svq-mini li small { display: block; color: var(--q-mut); font-size: .8rem; }
.svq-mini li em { font-style: normal; color: var(--q-mut); margin-left: auto; white-space: nowrap; padding-left: .6rem; }
.svq-mini--no h6 { color: #9B2C2C; } .svq-mini--no .svq-ic { color: #C24141; }
.svq-mini--opt h6 { color: var(--q-sead); } .svq-mini--opt .svq-ic { color: var(--q-sea); }
.svq-price { border-radius: 16px; background: var(--q-ink); color: #fff; padding: 1.2rem 1.35rem; }
.svq-price table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.svq-price td { padding: .45rem 0; color: #D7DCE2; }
.svq-price td:last-child { text-align: right; color: #fff; white-space: nowrap; padding-left: .75rem; font-variant-numeric: tabular-nums; }
.svq-price tr + tr td { border-top: 1px solid rgba(255, 255, 255, .1); }
.svq-tot { display: flex; justify-content: space-between; align-items: flex-end; margin-top: .75rem; padding-top: .85rem; border-top: 2px solid var(--q-o); }
.svq-tot b { font-size: .9rem; letter-spacing: .04em; text-transform: uppercase; color: #FFD3A8; }
.svq-tot strong { font-family: var(--svt-font-h, inherit); font-weight: 700; font-size: 2.1rem; line-height: 1; }
.svq-pp { text-align: right; color: #D7DCE2; font-size: .9rem; margin-top: .35rem; }
.sv-bags.is-flash { box-shadow: 0 0 0 3px #0B8DB5; transition: box-shadow .3s; }
@media (max-width: 900px) {
  .svq-h { font-size: 1.3rem; }
  .svq-hd .svq-pill--o { display: none; }
  .svq-grid, .svq-two, .svq-bagcard { grid-template-columns: 1fr; }
  .svq-bag + .svq-bag { border-left: 0; border-top: 1px dashed #9FCFE0; }
  .svq-leg { grid-template-columns: 1fr; gap: .4rem; }
  .svq-stay { grid-template-columns: 1fr; gap: .25rem; }
  .svq-route b { font-size: 1.1rem; }
  .svq-tot strong { font-size: 1.7rem; }
}
@media print {
  .svq-price { background: #fff; color: var(--q-ink); border: 1px solid var(--q-line); }
  .svq-price td, .svq-price td:last-child, .svq-pp { color: var(--q-ink); }
  .svq-tot b { color: var(--q-od); }
  .svq-svc, .svq-bagcard, .svq-trip { break-inside: avoid; }
}
/* 1.3.7 – services of the packages on the page of a hotel */
.svq-side { list-style: none; margin: 0 0 1rem; padding: 0; }
.svq-side li { display: flex; gap: .7rem; padding: .5rem 0; border-bottom: 1px solid #E4E6EA; font-size: .92rem; }
.svq-side .svq-bub { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: #E5F4F9; color: #08698A; flex: none; }
.svq-side .svq-ic { width: 18px; height: 18px; }
.svq-side small { display: block; color: #667080; font-size: .8rem; }
