.dialog { margin: 1em auto; max-width: var(--page-width-md); position: relative; width: 96%; z-index: 10; }

.dialog__body { background: rgb(var(--color-white)); color: rgb(var(--color-gray-origin)); padding: 5.5rem 1.5rem 2.25rem; text-align: left; }

.dialog__close { align-items: center; background: none; border: none; color: rgb(var(--color-red)); display: flex; height: 4rem; padding-left: 1.5em; position: absolute; right: 0; top: 0; transition: all .3s var(--transition); z-index: 10; }
.dialog__close:active, .dialog__close:focus, .dialog__close:hover { background: rgb(var(--color-red)); color: rgb(var(--color-white)); }
.dialog__close span { color: rgb(var(--color-white)); font-size: .875rem; opacity: 0; text-transform: uppercase; transition: all .3s var(--transition); }
.dialog__close:active span, .dialog__close:focus span, .dialog__close:hover span { opacity: 1; }
.dialog__close svg { height: 4rem; stroke: currentColor; width: 4rem; }

/* Cookies */
.dialog--cookies { max-width: calc(var(--page-width) / 2); }
.dialog--cookies, .dialog--gdpr { font-size: 1.07rem; line-height: 1.7; }
.dialog--cookies h2, .dialog--gdpr h2 { font-family: var(--font-main); font-size: 2.25rem; }
.dialog--cookies h3, .dialog--gdpr h3 { font-size: 1.5625rem; }

/* Reservation */
.dialog--reservation { max-width: var(--page-width-xl); }
.dialog--reservation .dialog__close { background: rgb(var(--color-gray-origin)); color: rgb(var(--color-white)); }
.dialog--reservation .dialog__close:active, .dialog--reservation .dialog__close:focus, .dialog--reservation .dialog__close:hover { background: rgb(var(--color-red)); }
.dialog--reservation .dialog__close span { opacity: 1; }

/* Review */
.dialog--review { max-width: calc(var(--page-width) / 1.25); }
.dialog--review .dialog__body { background: rgb(var(--color-gray-light)); text-align: center; }
.dialog--review .dialog__body h2 { margin-top: 0; }
.dialog--review .dialog__body p:first-child { color: rgb(var(--color-cyan)); font-size: 1.25rem; margin: 0; text-transform: uppercase; }

/* Tips */
.dialog--tips { max-width: var(--page-width-xl); }
.dialog--tips.fancybox-content { overflow: hidden; }
.dialog--tips .dialog__body { background: rgb(var(--color-white)); display: grid; font-size: 1rem; gap: 2.75rem; line-height: 1.65; max-height: calc(100vh - 2rem); overflow-y: auto; overscroll-behavior: contain; padding: 5.5rem 1.5rem 2.5rem; text-align: left; }

.dialog--tips .tips__intro { display: grid; gap: 2rem; }
.dialog--tips .tips__heading h1, .dialog--tips .tips__heading h2, .dialog--tips .tips__heading .h1, .dialog--tips .tips__heading .h2 { font-family: var(--font-aside); font-size: 2.75rem; line-height: .86; margin: 0 0 1rem; }
.dialog--tips .tips__heading p { font-size: .9375rem; line-height: 1.7; margin: 0; }
.dialog--tips .tips__heading p:last-child { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 3rem; }
.dialog--tips .tips__heading p:last-child > .button { margin: 0; min-width: 0; }

.dialog--tips .tips__accordion { display: grid; gap: .5rem; }
.dialog--tips .accordion-item { align-items: center; background: rgb(var(--color-white)); border-radius: 1.25rem; box-shadow: 0 .125rem .5rem rgba(var(--color-gray-origin),.2); display: flex; flex-wrap: wrap; overflow: hidden; }
.dialog--tips .accordion-header { cursor: pointer; margin: 0; transition: background-color .2s ease; width: 100%; }
.dialog--tips .accordion-header:hover { background-color: rgba(var(--color-cyan),.08); }
.dialog--tips .accordion-trigger { align-items: center; background: transparent; border: 0; color: rgb(var(--color-gray-origin)); cursor: pointer; display: flex; font-family: var(--font-main); font-size: .9375rem; justify-content: space-between; line-height: 1.25; padding: .6rem .65rem .6rem 1rem; text-align: left; transition: color .2s ease; width: 100%; }
.dialog--tips .accordion-trigger:focus-visible { outline: 2px solid rgb(var(--color-cyan)); outline-offset: -3px; }
.dialog--tips .accordion-header:hover .accordion-trigger { color: rgb(var(--color-cyan)); }
.dialog--tips .accordion-title { font-size: 1.125rem; min-width: 0; }
.dialog--tips .accordion-action { background: rgb(var(--color-cyan)); border-radius: var(--radius-sm); color: rgb(var(--color-white)); flex: 0 0 auto; font-size: 1rem; letter-spacing: var(--spacing-xs); line-height: 2; margin-left: 1rem; min-width: 3.5rem; padding: .1em 1.25rem 0; text-align: center; text-transform: uppercase; }
.dialog--tips .accordion-body { border: 0; height: 0; margin-top: 0; overflow: hidden; padding: 0; transition: height .35s ease, margin-top .35s ease, padding .35s ease; width: 100%; }
.dialog--tips .accordion-body__inner { font-size: .9rem; min-height: 0; overflow: hidden; padding: .75rem 1rem; }

.dialog--tips .tips__rules { position: relative; z-index: 2; }
.dialog--tips .tips__rules h3, .dialog--tips .tips__list h3 { font-family: var(--font-main); font-size: 2rem; line-height: 1.08; margin: 0 0 1.25rem; text-wrap: balance; }
.dialog--tips .tips__rules h4 { border-bottom: 1px solid rgb(var(--color-cyan)); color: rgb(var(--color-cyan)); font-size: 1.5rem; line-height: 1.2; margin: 1.75rem 0 .8rem; padding-bottom: .5rem; text-align: left; }
.dialog--tips .tips__rules p { font-size: .9375rem; margin: .3rem 0; }
.dialog--tips .tips__rules ul { list-style: none; margin: 0; padding: 0; }
.dialog--tips .tips__rules li { line-height: 1.55; margin: .25rem 0; padding-left: 1.2rem; position: relative; }
.dialog--tips .tips__rules li::before { color: rgb(var(--color-cyan)); content: '✓'; left: 0; position: absolute; top: 0; }

.dialog--tips .tips__list { display: grid; gap: 1.5rem 1rem; grid-template-columns: repeat(1, minmax(0, 1fr)); padding-bottom: 2rem; position: relative; z-index: 1; }
.dialog--tips .tips__list > :not(.interest__item) { grid-column: 1 / -1; }
.dialog--tips .tips__filters { display: flex; flex-wrap: wrap; gap: .75rem; grid-column: 1 / -1; margin-bottom: 2rem; }
.dialog--tips .tips__filters[hidden] { display: none; }
.dialog--tips .tips__filter { background: rgb(var(--color-white)); border: 1px solid rgba(var(--color-gray-origin),.5); border-radius: 999px; color: rgb(var(--color-gray-origin)); cursor: pointer; font-family: var(--font-main); font-size: .875rem; line-height: 1.25rem; min-height: 2.5rem; padding: .5rem 1.25rem; text-transform: uppercase; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.dialog--tips .tips__filter[aria-pressed="true"] { background: rgb(var(--color-gray-origin)); border-color: rgb(var(--color-gray-origin)); color: rgb(var(--color-white)); }
.dialog--tips .tips__filter:focus-visible { outline: 2px solid rgb(var(--color-cyan)); outline-offset: 2px; }
.dialog--tips .tips__filter:not([aria-pressed="true"]):hover { background: rgb(var(--color-gray-light)); border-color: rgb(var(--color-gray-origin)); }

.dialog--tips .tips__list .interest__body { display: grid; gap: 1.5rem 1rem; grid-column: 1 / -1; grid-template-columns: repeat(1, minmax(0, 1fr)); margin: 0; padding: 0; }
.dialog--tips .tips__list .interest__item { border-left: 0; max-width: none; padding: 0; top: auto; width: 100%; }
.dialog--tips .tips__list .interest__name { color: rgb(var(--color-gray-origin)); font-size: .9375rem; letter-spacing: var(--spacing-sm); margin: .8rem 0 .35rem; text-transform: uppercase; }
.dialog--tips .tips__list .interest__image { aspect-ratio: 1.55; margin-bottom: .75rem; overflow: hidden; position: relative; }
.dialog--tips .tips__list .interest__image img { display: block; height: 100%; object-fit: cover; width: 100%; }
.dialog--tips .tips__list .interest__tags { align-items: center; bottom: .75rem; display: flex; flex-wrap: wrap; gap: .4rem; left: 1rem; position: absolute; right: 1rem; }
.dialog--tips .tips__list .interest__tag { border: 1px solid rgb(var(--color-white)); border-radius: var(--radius-sm); color: rgb(var(--color-white)); display: inline-block; font-size: .75rem; line-height: 1.5rem; padding: 0 .85rem; text-transform: uppercase; white-space: nowrap; }
.dialog--tips .tips__list .interest__desc { font-size: .875rem; letter-spacing: var(--spacing-sm); line-height: 1.55; }
.dialog--tips .tips__list .interest__desc h4 { color: rgb(var(--color-cyan)); font-size: 1.25rem; line-height: 1.2; margin: 0 0 1rem; }
.dialog--tips .tips__list .button { font-size: .75rem; line-height: 2.25rem; min-width: 5.25rem; padding: 0 .85rem; }
.dialog--tips .tips__list .interest__button { margin-top: 1rem; }
.dialog--tips .tips__list__shape { height: 26.5625rem; right: -1rem; top: -8rem; width: 19.3375rem; z-index: -1; }
.dialog--tips .tips__list__shape svg { height: 100%; width: 100%; }

.dialog--tips .tips__load-more { grid-column: 1 / -1; justify-self: center; margin-top: .5rem; }
.dialog--tips .tips__load-more[hidden] { display: none; }

.dialog--tips .tips__reviews { align-items: start; display: grid; gap: 2rem; padding-bottom: 2rem; position: relative; }
.dialog--tips .tips__review h2, .dialog--tips .tips__review h3, .dialog--tips .tips__review .h2 { font-family: var(--font-aside); font-size: 2.25rem; line-height: .95; margin: 0 0 1rem; }
.dialog--tips .tips__review p { font-size: .9375rem; }
.dialog--tips .tips__review .button { font-size: .75rem; line-height: 2.5rem; min-width: 8rem; padding: 0 1rem; }
.dialog--tips .tips__review .review__item { background: transparent; color: rgb(var(--color-gray-origin)); font-size: .9375rem; margin: 0; opacity: 1; padding: 0; text-align: left; }
.dialog--tips .tips__review .review__item::before { content: none; }
.dialog--tips .tips__reviews__shape { height: 26.5625rem; left: 0; top: 2rem; width: 19.3375rem; }
.dialog--tips .tips__reviews__shape svg { height: 100%; width: 100%; }

.dialog--tips .tips__rating { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.dialog--tips .tips__rating > * { align-items: center; display: flex; flex-wrap: wrap; justify-content: center; }
.dialog--tips .tips__rating img { display: block; height: auto; max-width: 100%; }

@media only screen and (min-width: 40rem) {
	.dialog__body { padding: 5.5rem 3.5rem 3.5rem; }

	/* Cookies */
	.dialog--cookies .dialog__body { padding: 5rem 3rem 3.5rem; }
	.dialog--cookies h2, .dialog--gdpr h2 { font-size: 2.75rem; }
	.dialog--cookies h3, .dialog--gdpr h3 { font-size: 1.875rem; }
}

@media only screen and (min-width: 48rem) {
	.dialog--tips .dialog__body { gap: 3.5rem; padding: 6rem 3rem 3.5rem; }
	.dialog--tips .tips__intro { align-items: start; gap: 2rem; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
	.dialog--tips .tips__heading h1, .dialog--tips .tips__heading h2, .dialog--tips .tips__heading .h1, .dialog--tips .tips__heading .h2 { font-size: 3.5rem; }
	.dialog--tips .tips__list, .dialog--tips .tips__list .interest__body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media only screen and (min-width: 64rem) {
	.dialog--tips .tips__reviews { gap: 3rem; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
}

@media only screen and (min-width: 80rem) {
	.dialog__body { padding: 6rem 6rem 5.5rem; }

	.dialog--tips .dialog__body { gap: 4.5rem; }
	.dialog--tips .tips__intro { gap: 0; grid-template-columns: 42% 50%; justify-content: space-between; }

	.dialog--tips .tips__heading h2, .dialog--tips .tips__heading .h2 { font-size: 7rem; margin-bottom: 3rem; }
	.dialog--tips .tips__heading p:last-child { margin-top: 4rem; }

	.dialog--tips .accordion-item:not(.is-expanded) { min-height: 4.5rem; }
	.dialog--tips .accordion-item.is-expanded { height: auto; }
	.dialog--tips .accordion-header { align-items: center; display: flex; min-height: 3rem; padding: 1rem 1.5rem 1rem 2.75rem; }
	.dialog--tips .accordion-trigger { height: 3rem; padding: 0; }
	.dialog--tips .accordion-item.is-expanded .accordion-body { padding: 1rem 1.5rem 1rem 2.75rem; }

	.dialog--tips .tips__rules h3, .dialog--tips .tips__list h3 { font-size: 2.5rem; max-width: 40rem; }

	.dialog--tips .tips__list, .dialog--tips .tips__list .interest__body { gap: 2rem 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.dialog--tips .tips__list, .dialog--tips .tips__reviews { padding-bottom: 4rem; }

	.dialog--tips .tips__review h2, .dialog--tips .tips__review h3, .dialog--tips .tips__review .h2 { font-size: 5rem; margin-bottom: 2.5rem; }
	.dialog--tips .tips__review p { padding-left: 9rem; }

	/* Reservation */
	.dialog--reservation .dialog__close { background: transparent; }
}

@media (prefers-reduced-motion: reduce) {
	.dialog--tips .accordion-body, .dialog--tips .tips__filter { transition: none; }
}