Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. /**
  2. * Guest consulta prenotazione — copertina evento, codice evidenza, griglia contatti, tabella Q/A/prezzo.
  3. */
  4. .guest-fest {
  5. --fest-orange: #f58220;
  6. --fest-purple: #602d91;
  7. --fest-navy: #15265c;
  8. --fest-muted: #6b7280;
  9. --fest-surface: #f0f2f8;
  10. --fest-card: #ffffff;
  11. --fest-border: #e2e6ef;
  12. --fest-radius: 0.5rem;
  13. --fest-radius-card: 0.85rem;
  14. --bs-primary: var(--fest-orange);
  15. --bs-primary-rgb: 245, 130, 32;
  16. --bs-link-color: var(--fest-purple);
  17. --bs-link-hover-color: #4a2270;
  18. font-family:
  19. "Plus Jakarta Sans",
  20. system-ui,
  21. -apple-system,
  22. "Segoe UI",
  23. Roboto,
  24. sans-serif;
  25. }
  26. .guest-fest-bg {
  27. min-height: 100%;
  28. background: var(--fest-surface);
  29. background-image:
  30. radial-gradient(ellipse 100% 60% at 100% 0%, rgba(245, 130, 32, 0.09) 0%, transparent 42%),
  31. radial-gradient(ellipse 80% 50% at 0% 100%, rgba(96, 45, 145, 0.07) 0%, transparent 40%);
  32. }
  33. .guest-fest-page {
  34. max-width: 42rem;
  35. }
  36. .guest-fest-card.guest-fest-card--ticket {
  37. border: 1px solid rgba(21, 38, 92, 0.08);
  38. border-radius: var(--fest-radius-card);
  39. box-shadow:
  40. 0 1px 3px rgba(21, 38, 92, 0.05),
  41. 0 8px 18px rgba(21, 38, 92, 0.06);
  42. overflow: hidden;
  43. }
  44. .guest-fest-ticket-bar {
  45. height: 3px;
  46. background: linear-gradient(
  47. 90deg,
  48. var(--fest-orange) 0%,
  49. var(--fest-purple) 50%,
  50. var(--fest-navy) 100%
  51. );
  52. }
  53. /* Copertina */
  54. .guest-fest-cover-wrap {
  55. position: relative;
  56. width: 100%;
  57. background: #dee3ec;
  58. }
  59. .guest-fest-cover-img {
  60. display: block;
  61. width: 100%;
  62. height: 180px;
  63. object-fit: cover;
  64. }
  65. @media (min-width: 576px) {
  66. .guest-fest-cover-img {
  67. height: 220px;
  68. }
  69. }
  70. .guest-fest-cover-fallback {
  71. height: 160px;
  72. background: linear-gradient(125deg, var(--fest-navy) 0%, var(--fest-purple) 55%, var(--fest-orange) 100%);
  73. opacity: 0.9;
  74. }
  75. .guest-fest-card-body--compact {
  76. padding: 0.75rem 0.75rem 0.55rem;
  77. }
  78. @media (min-width: 576px) {
  79. .guest-fest-card-body--compact {
  80. padding: 0.85rem 1rem 0.65rem;
  81. }
  82. }
  83. .guest-fest-page-title {
  84. color: var(--fest-navy);
  85. font-weight: 700;
  86. letter-spacing: -0.03em;
  87. line-height: 1.2;
  88. }
  89. .guest-fest-page-title--compact {
  90. font-size: clamp(1.15rem, 3.5vw, 1.4rem);
  91. }
  92. /* Info evento */
  93. .guest-fest-event-info {
  94. font-size: 0.8125rem;
  95. color: var(--fest-muted);
  96. }
  97. .guest-fest-event-line {
  98. margin-bottom: 0.25rem;
  99. }
  100. .guest-fest-event-line i {
  101. color: var(--fest-purple);
  102. opacity: 0.85;
  103. }
  104. .guest-fest-event-desc {
  105. font-size: 0.78rem;
  106. line-height: 1.45;
  107. color: #374151;
  108. }
  109. /* Codice grande */
  110. .guest-fest-codice-block {
  111. text-align: center;
  112. padding: 0.65rem 0.75rem;
  113. background: linear-gradient(145deg, #f8fafc 0%, #eef2f8 100%);
  114. border: 2px solid rgba(245, 130, 32, 0.35);
  115. border-radius: var(--fest-radius);
  116. box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
  117. }
  118. /* QR codice (SVG da endroid/qr-code) */
  119. .guest-fest-qr-wrap {
  120. display: flex;
  121. justify-content: center;
  122. align-items: center;
  123. }
  124. .guest-fest-qr-wrap svg {
  125. display: block;
  126. max-width: 168px;
  127. width: 100%;
  128. height: auto;
  129. border-radius: var(--fest-radius);
  130. background: #fff;
  131. padding: 0.35rem;
  132. box-shadow: inset 0 0 0 1px var(--fest-border);
  133. }
  134. .guest-fest-codice-label {
  135. display: block;
  136. font-size: 0.6rem;
  137. font-weight: 700;
  138. text-transform: uppercase;
  139. letter-spacing: 0.1em;
  140. color: var(--fest-muted);
  141. margin-bottom: 0.35rem;
  142. }
  143. .guest-fest-codice-big {
  144. font-size: clamp(1.4rem, 6vw, 2rem);
  145. font-weight: 800;
  146. letter-spacing: 0.08em;
  147. color: var(--fest-navy);
  148. line-height: 1.15;
  149. }
  150. /* Accordion Dettagli */
  151. .guest-fest-accordion {
  152. --bs-accordion-border-radius: var(--fest-radius);
  153. --bs-accordion-inner-border-radius: var(--fest-radius);
  154. }
  155. .guest-fest-accordion .accordion-item {
  156. background: transparent;
  157. }
  158. .guest-fest-accordion-btn {
  159. font-weight: 700;
  160. font-size: 0.875rem;
  161. color: var(--fest-navy) !important;
  162. background: #f3f5f9 !important;
  163. box-shadow: none !important;
  164. border: 1px solid var(--fest-border) !important;
  165. }
  166. .guest-fest-accordion-btn:not(.collapsed) {
  167. background: linear-gradient(135deg, rgba(245, 130, 32, 0.1), rgba(96, 45, 145, 0.08)) !important;
  168. border-color: rgba(245, 130, 32, 0.35) !important;
  169. }
  170. .guest-fest-accordion-btn:focus {
  171. box-shadow: 0 0 0 0.2rem rgba(245, 130, 32, 0.2) !important;
  172. }
  173. .guest-fest-accordion-body {
  174. padding: 0.85rem 0.65rem 0.75rem;
  175. background: #fafbfd;
  176. border: 1px solid var(--fest-border);
  177. border-top: 0;
  178. border-radius: 0 0 var(--fest-radius) var(--fest-radius);
  179. }
  180. .guest-fest-event-external-link {
  181. display: inline-flex;
  182. align-items: center;
  183. font-size: 0.9rem;
  184. font-weight: 700;
  185. color: var(--fest-purple);
  186. text-decoration: none;
  187. line-height: 1.3;
  188. }
  189. .guest-fest-event-external-link:hover {
  190. color: var(--fest-orange);
  191. text-decoration: underline;
  192. }
  193. .guest-fest-event-link-text {
  194. word-break: break-word;
  195. }
  196. .guest-fest-subsection-title {
  197. font-size: 0.6875rem;
  198. font-weight: 700;
  199. text-transform: uppercase;
  200. letter-spacing: 0.07em;
  201. color: var(--fest-purple);
  202. padding-left: 0.4rem;
  203. border-left: 2px solid var(--fest-orange);
  204. }
  205. /* Riga prenotazione / pagamento */
  206. .guest-fest-prenot-line {
  207. display: flex;
  208. flex-wrap: wrap;
  209. align-items: center;
  210. justify-content: center;
  211. gap: 0.35rem 0.5rem;
  212. font-size: 0.8125rem;
  213. color: var(--fest-muted);
  214. }
  215. .guest-fest-prenot-hash {
  216. font-weight: 600;
  217. color: var(--fest-navy);
  218. }
  219. .guest-fest-prenot-sep {
  220. opacity: 0.45;
  221. }
  222. .guest-fest-prenot-meta {
  223. font-weight: 500;
  224. color: var(--fest-navy);
  225. }
  226. /* Griglia 2×2 contatti */
  227. .guest-fest-contact-grid {
  228. display: grid;
  229. grid-template-columns: 1fr 1fr;
  230. gap: 0.35rem;
  231. }
  232. @media (max-width: 400px) {
  233. .guest-fest-contact-grid {
  234. grid-template-columns: 1fr;
  235. }
  236. }
  237. .guest-fest-contact-cell {
  238. border: 1px solid var(--fest-border);
  239. border-radius: var(--fest-radius);
  240. padding: 0.4rem 0.5rem;
  241. background: #f8f9fc;
  242. }
  243. .guest-fest-contact-k {
  244. display: block;
  245. font-size: 0.58rem;
  246. font-weight: 700;
  247. text-transform: uppercase;
  248. letter-spacing: 0.06em;
  249. color: var(--fest-muted);
  250. margin-bottom: 0.15rem;
  251. }
  252. .guest-fest-contact-v {
  253. font-size: 0.78rem;
  254. font-weight: 600;
  255. color: var(--fest-navy);
  256. line-height: 1.3;
  257. word-break: break-word;
  258. }
  259. /* Sezione dettagli */
  260. .guest-fest-section-title--compact {
  261. font-size: 0.625rem;
  262. font-weight: 700;
  263. text-transform: uppercase;
  264. letter-spacing: 0.08em;
  265. color: var(--fest-purple);
  266. padding-left: 0.4rem;
  267. border-left: 2px solid var(--fest-orange);
  268. }
  269. /* Tabella domanda | risposta | prezzo (header solo per screen reader) */
  270. .guest-fest .guest-fest-qa-wrap {
  271. border: 1px solid var(--fest-border);
  272. border-radius: var(--fest-radius);
  273. overflow: hidden;
  274. }
  275. .guest-fest .guest-fest-qa-table thead.visually-hidden th {
  276. padding: 0;
  277. border: 0;
  278. }
  279. .guest-fest .guest-fest-qa-table tbody tr:nth-child(odd) td {
  280. background: rgba(21, 38, 92, 0.02);
  281. }
  282. .guest-fest .guest-fest-qa-table tbody td {
  283. font-size: 0.75rem;
  284. vertical-align: top;
  285. padding: 0.4rem 0.45rem !important;
  286. border-color: var(--fest-border);
  287. color: #374151;
  288. }
  289. .guest-fest .guest-fest-qa-q {
  290. font-weight: 600;
  291. color: var(--fest-navy);
  292. width: 36%;
  293. }
  294. .guest-fest .guest-fest-qa-a {
  295. width: 49%;
  296. }
  297. .guest-fest .guest-fest-qa-p {
  298. width: 15%;
  299. text-align: right;
  300. font-variant-numeric: tabular-nums;
  301. color: var(--fest-muted);
  302. }
  303. .guest-fest-empty {
  304. font-size: 0.75rem;
  305. color: var(--fest-muted);
  306. padding: 0.35rem 0.5rem;
  307. background: #f3f4f8;
  308. border-radius: var(--fest-radius);
  309. border: 1px dashed var(--fest-border);
  310. }
  311. .guest-fest-actions {
  312. display: flex;
  313. justify-content: center;
  314. padding: 0.5rem 0 0;
  315. margin-top: 0.35rem;
  316. border-top: 1px solid var(--fest-border);
  317. }
  318. .guest-fest .btn-fest-soft {
  319. border: 1px solid var(--fest-border);
  320. color: var(--fest-navy);
  321. background: #fff;
  322. font-weight: 600;
  323. font-size: 0.8125rem;
  324. border-radius: 999px;
  325. padding: 0.4rem 1rem;
  326. min-height: 40px;
  327. display: inline-flex;
  328. align-items: center;
  329. justify-content: center;
  330. transition:
  331. border-color 0.15s ease,
  332. color 0.15s ease,
  333. background-color 0.15s ease;
  334. }
  335. @media (max-width: 575.98px) {
  336. .guest-fest .btn-fest-soft {
  337. width: 100%;
  338. }
  339. }
  340. .guest-fest .btn-fest-soft:hover {
  341. border-color: rgba(245, 130, 32, 0.55);
  342. color: var(--fest-orange);
  343. background: rgba(245, 130, 32, 0.07);
  344. }