/* Optional Swiss welcome. Deliberately independent of legacy .modal and .btn styles. */
html:has(.swiss-welcome[open]) { overflow: hidden; }
.swiss-welcome {
    --siteops-swiss-welcome-ready: 1;
    box-sizing: border-box;
    width: min(490px, calc(100vw - 36px));
    max-width: none;
    max-height: calc(100dvh - 40px);
    padding: 0;
    margin: auto;
    border: 1px solid #d9cdb8;
    border-radius: 14px;
    color: #292923;
    background: #f7f4ed;
    box-shadow: 0 24px 90px #1e201b38;
    overflow: auto;
    overscroll-behavior: contain;
    opacity: 0;
    transform: translateY(18px) scale(.985);
    transition: opacity 180ms ease, transform 280ms cubic-bezier(.2,.7,.2,1);
}
.swiss-welcome.is-visible { opacity: 1; transform: none; }
.swiss-welcome::backdrop { background: #19201d60; backdrop-filter: blur(4px); }
.swiss-welcome *, .swiss-welcome *::before, .swiss-welcome *::after { box-sizing: border-box; }
.swiss-welcome__panel { position: relative; padding: 42px 38px 27px; }
.swiss-welcome .swiss-welcome__close {
    position: absolute; top: 9px; right: 9px; display: grid; place-items: center;
    width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
    color: #62594b; background: transparent; font: 300 28px/1 Arial,sans-serif; cursor: pointer;
}
.swiss-welcome .swiss-welcome__close:hover { color: #292923; background: #e9e2d6; }
.swiss-welcome .swiss-welcome__kicker {
    display: flex; align-items: center; gap: 10px; padding: 0; margin: 0 0 23px;
    color: #775c30; font: 700 11px/1.5 Lato,Arial,sans-serif;
    letter-spacing: 1.65px; text-transform: uppercase;
}
.swiss-welcome__mark {
    display: grid; place-items: center; width: 28px; height: 28px; flex: none;
    border: 1px solid #b49a6c; border-radius: 50%; font: 400 23px/1 Georgia,serif;
    letter-spacing: 0;
}
.swiss-welcome #swiss-welcome-title {
    padding: 0; margin: 0 0 17px; color: #292923;
    font: 400 clamp(29px, 5vw, 36px)/1.19 Lora,Georgia,serif;
    letter-spacing: -.6px; text-align: left; text-transform: none;
}
.swiss-welcome #swiss-welcome-title:focus { outline: none; }
.swiss-welcome #swiss-welcome-text {
    padding: 0; margin: 0 0 28px; color: #555046;
    font: 400 16px/1.65 Lato,Arial,sans-serif; text-align: left;
}
.swiss-welcome__actions { display: grid; gap: 9px; }
.swiss-welcome .swiss-welcome__visit {
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    width: 100%; min-height: 57px; padding: 15px 20px; border: 1px solid #806233;
    border-radius: 5px; background: #806233; color: #fff;
    font: 700 16px/1.35 Lato,Arial,sans-serif; text-decoration: none;
    transition: background 150ms ease, border-color 150ms ease;
}
.swiss-welcome .swiss-welcome__visit:hover { color: #fff; background: #654c27; border-color: #654c27; }
.swiss-welcome__visit > span:last-child { font-size: 22px; flex: none; }
.swiss-welcome .swiss-welcome__stay {
    width: 100%; min-height: 47px; padding: 11px 15px; border: 1px solid transparent;
    border-radius: 5px; background: transparent; color: #5b5141;
    font: 400 14px/1.4 Lato,Arial,sans-serif; cursor: pointer;
}
.swiss-welcome .swiss-welcome__stay:hover { background: #eae4d9; color: #292923; }
.swiss-welcome a:focus-visible, .swiss-welcome button:focus-visible { outline: 3px solid #292923; outline-offset: 3px; }
@media (max-width: 480px) {
    .swiss-welcome { width: calc(100vw - 28px); max-height: calc(100dvh - 28px); border-radius: 11px; }
    .swiss-welcome__panel { padding: 36px 25px 21px; }
    .swiss-welcome .swiss-welcome__kicker { margin-bottom: 20px; font-size: 10px; letter-spacing: 1.3px; }
    .swiss-welcome #swiss-welcome-title { font-size: 30px; }
    .swiss-welcome #swiss-welcome-text { font-size: 15.5px; margin-bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .swiss-welcome, .swiss-welcome .swiss-welcome__visit { transition: none; transform: none; }
    .swiss-welcome::backdrop { backdrop-filter: none; }
}
