/* Service call overlay + in-app reservation (Aura Living demo) */
.svc, .rsv { position: fixed; inset: 0; z-index: 400; display: grid; background: rgba(28, 24, 20, .46); opacity: 0; transition: opacity .24s ease-out; font-family: "Switzer", "Segoe UI", system-ui, sans-serif; color: #2A1F17; }
.svc[hidden], .rsv[hidden] { display: none; }
.svc.is-open, .rsv.is-open { opacity: 1; }
.svc { place-items: center; padding: 24px; }
.svc__card { width: min(340px, 100%); background: #FCF9F3; border: 1px solid rgba(169, 131, 79, .35); border-radius: 10px; padding: 30px 26px 22px; text-align: center; transform: translateY(14px) scale(.98); transition: transform .26s ease-out; outline: none; box-shadow: 0 24px 60px rgba(28, 24, 20, .22); }
.svc.is-open .svc__card { transform: none; }
.svc__stage { position: relative; width: 132px; height: 132px; margin: 0 auto 18px; display: grid; place-items: center; }
.svc__ring { position: absolute; inset: 18px; border: 1px solid #A9834F; border-radius: 50%; opacity: 0; }
.svc.is-calling .svc__ring { animation: svc-ring 1.6s ease-out infinite; }
.svc.is-calling .svc__ring--2 { animation-delay: .5s; }
.svc.is-calling .svc__ring--3 { animation-delay: 1s; }
.svc__icon { width: 76px; height: 76px; border-radius: 50%; background: #1C3B33; color: #F6F0E6; display: grid; place-items: center; transition: transform .3s ease-out, opacity .3s ease-out; }
.svc-ic { width: 36px; height: 36px; fill: currentColor; transform-origin: 50% 12%; }
.svc.is-calling .svc-ic { animation: svc-swing .7s ease-in-out infinite; }
.svc--rechnung.is-calling .svc-ic { animation: svc-bob .9s ease-in-out infinite; }
.svc.is-done .svc__icon { transform: scale(.4); opacity: 0; }
.svc-check { position: absolute; width: 84px; height: 84px; fill: none; stroke: #1C3B33; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
.svc-check circle { stroke-dasharray: 183; stroke-dashoffset: 183; }
.svc-check path { stroke-dasharray: 40; stroke-dashoffset: 40; }
.is-done .svc-check { opacity: 1; }
.is-done .svc-check circle { animation: svc-draw .55s ease-out forwards; }
.is-done .svc-check path { animation: svc-draw .35s .4s ease-out forwards; }
.svc__table { margin: 0 0 6px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #A9834F; }
.svc__title { margin: 0; font: 400 23px/1.2 "Zodiak", "Iowan Old Style", "Palatino Linotype", Georgia, serif; }
.svc__sub { margin: 8px 0 0; min-height: 40px; font-size: 14px; line-height: 1.45; color: #6E6257; }
.svc__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 16px 0 18px; }
.svc__steps span { padding-top: 9px; border-top: 2px solid rgba(42, 31, 23, .12); font-size: 11px; letter-spacing: .06em; color: #9A8F84; transition: border-color .3s, color .3s; }
.svc.is-open .svc__steps span:nth-child(1), .svc.step-2 .svc__steps span:nth-child(2), .svc.step-3 .svc__steps span:nth-child(3) { border-color: #1C3B33; color: #2A1F17; }
.svc__close { appearance: none; border: 0; background: none; font: 500 13px/1 "Switzer", system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #6E6257; padding: 12px 18px; min-height: 44px; cursor: pointer; }

@keyframes svc-ring { 0% { transform: scale(.72); opacity: .7; } 100% { transform: scale(1.55); opacity: 0; } }
@keyframes svc-swing { 0%, 100% { transform: rotate(-14deg); } 50% { transform: rotate(14deg); } }
@keyframes svc-bob { 0%, 100% { transform: translateY(2px); } 50% { transform: translateY(-4px); } }
@keyframes svc-draw { to { stroke-dashoffset: 0; } }

/* reservation sheet */
.rsv { align-items: end; }
.rsv__sheet { background: #FCF9F3; border-radius: 12px 12px 0 0; padding: 10px 22px calc(22px + env(safe-area-inset-bottom)); max-height: 90dvh; overflow: auto; transform: translateY(100%); transition: transform .28s ease-out; outline: none; width: 100%; max-width: 480px; justify-self: center; }
.rsv.is-open .rsv__sheet { transform: none; }
.rsv__grip { display: block; width: 38px; height: 4px; border-radius: 2px; background: rgba(42, 31, 23, .18); margin: 0 auto 18px; }
.rsv__eyebrow, .rsv__label { display: block; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #A9834F; margin: 0 0 8px; }
.rsv__title { margin: 0 0 20px; font: 400 28px/1.15 "Zodiak", "Iowan Old Style", Georgia, serif; }
.rsv__title em { font-style: italic; }
.rsv__row { display: flex; align-items: center; justify-content: space-between; padding: 0 0 16px; margin-bottom: 16px; border-bottom: 1px solid rgba(42, 31, 23, .12); }
.rsv__row .rsv__label { margin: 0; }
.rsv__step { display: flex; align-items: center; gap: 14px; }
.rsv__step b { min-width: 22px; text-align: center; font: 400 22px/1 "Zodiak", Georgia, serif; }
.rsv__step button { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(42, 31, 23, .25); background: none; font-size: 20px; color: #2A1F17; cursor: pointer; }
.rsv__chips { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 16px; margin: 0 -22px 2px; padding-left: 22px; padding-right: 22px; scrollbar-width: none; }
.rsv__chips::-webkit-scrollbar { display: none; }
.rsv__chips--t { flex-wrap: wrap; overflow: visible; }
.rsv__chip { flex: none; min-width: 64px; min-height: 44px; padding: 8px 14px; border-radius: 8px; border: 1px solid rgba(42, 31, 23, .2); background: none; color: #2A1F17; font: 400 14px/1.2 "Switzer", system-ui, sans-serif; cursor: pointer; display: grid; gap: 2px; justify-items: center; transition: background .18s, color .18s, border-color .18s; }
.rsv__chip b { font-weight: 500; }
.rsv__chip small { font-size: 11px; color: #6E6257; }
.rsv__chip.is-on { background: #1C3B33; border-color: #1C3B33; color: #F6F0E6; }
.rsv__chip.is-on small { color: rgba(246, 240, 230, .7); }
.rsv__go { width: 100%; min-height: 52px; margin-top: 8px; border: 0; border-radius: 8px; background: #1C3B33; color: #F6F0E6; font: 500 15px/1 "Switzer", system-ui, sans-serif; letter-spacing: .02em; cursor: pointer; }
.rsv__go--line { background: none; border: 1px solid rgba(42, 31, 23, .3); color: #2A1F17; }
.rsv__fine { margin: 12px 0 0; font-size: 12px; line-height: 1.45; color: #6E6257; text-align: center; }
.rsv__done { text-align: center; padding: 26px 0 4px; }
.rsv__done .svc-check { position: static; margin: 0 auto 14px; display: block; }
.rsv__sum { margin: -8px 0 0; font: 400 17px/1.4 "Zodiak", Georgia, serif; }

@media (prefers-reduced-motion: reduce) {
  .svc *, .rsv * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .svc-check circle, .svc-check path { stroke-dashoffset: 0; }
}

/* former links that are now in-app buttons */
button.rail-btn { background: none; border: 0; padding: 0; cursor: pointer; font-family: inherit; -webkit-appearance: none; appearance: none; }
button.btn { font-family: inherit; cursor: pointer; -webkit-appearance: none; appearance: none; }
