/* Scoped invitation styles: no changes to the homepage, header or booking form. */
.ip-invite,.ip-invite *{box-sizing:border-box}
dialog.ip-invite{position:fixed;inset:0;margin:auto;padding:0;width:min(780px,calc(100% - 48px));max-width:none;max-height:calc(100svh - 48px);border:1px solid #d7dca36b;border-radius:14px;background:#10110f;color:#f2f1e7;font-family:Arial,Helvetica,sans-serif;box-shadow:0 28px 110px #0009;overflow:auto;overscroll-behavior:contain}
.ip-invite::backdrop{background:#080a08b3;backdrop-filter:blur(5px)}
.ip-invite .ip-invite-card{position:relative;isolation:isolate;overflow:hidden;border-radius:13px}
.ip-invite p,.ip-invite h2{margin:0;color:inherit;font-family:inherit}
.ip-invite .ip-invite-photo{position:absolute;z-index:-2;inset:0;width:72%;height:100%;max-width:none;object-fit:cover;object-position:50% 73%}
.ip-invite .ip-invite-card::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#10110f00 24%,#10110f40 43%,#10110ff0 68%,#10110f 100%)}
.ip-invite .ip-invite-main{position:relative;min-height:340px;padding:66px 32px 42px 53%;display:flex;flex-direction:column;justify-content:center;gap:22px}
.ip-invite .ip-invite-brand{font-size:10px;letter-spacing:.3em;line-height:1.4;white-space:nowrap;color:#e0e2c4}
.ip-invite .ip-invite-brand::after{content:"";display:block;width:28px;height:1px;background:#d7dca3;margin-top:13px}
.ip-invite #ip-invite-title{font-size:23px;font-weight:400;letter-spacing:-.02em;line-height:1.2;margin:0 0 10px}
.ip-invite .ip-invite-date{font-size:88px;line-height:1;letter-spacing:-.065em;font-weight:600;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.ip-invite .ip-invite-month{margin-top:8px;font-size:25px;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;font-weight:400}
.ip-invite.ip-invite-long-date .ip-invite-date{font-size:34px;letter-spacing:-.04em;white-space:normal}
.ip-invite .ip-invite-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 24px;background:#10110f;border-top:1px solid #d7dca344}
.ip-invite .ip-invite-meta{display:flex;align-items:center;gap:20px;min-width:0}
.ip-invite .ip-invite-places,.ip-invite .ip-invite-hours{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.3;white-space:nowrap}
.ip-invite .ip-invite-places i{width:8px;height:8px;border-radius:50%;background:#d7dca3;flex:none}
.ip-invite.ip-invite-full .ip-invite-places i{background:#aaa}
.ip-invite .ip-invite-hours{padding-left:20px;border-left:1px solid #d7dca34d}
.ip-invite .ip-invite-hours svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.25;flex:none}
.ip-invite .ip-invite-cta{appearance:none;display:flex;align-items:center;justify-content:center;gap:14px;border:1px solid transparent;border-radius:30px;padding:12px 22px;min-height:46px;min-width:230px;background:#d7dca3;color:#15170f;font:600 15px/1.25 Arial,Helvetica,sans-serif;cursor:pointer;transition:background .2s}
.ip-invite .ip-invite-cta:hover{background:#e5e9ba}
.ip-invite .ip-invite-cta svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}
.ip-invite .ip-invite-close{position:absolute;z-index:2;right:10px;top:10px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;padding:11px;background:#10110f70;color:#f2f1e7;cursor:pointer}
.ip-invite .ip-invite-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5}
.ip-invite button:focus-visible{outline:2px solid #f2f1e7;outline-offset:-4px}
.ip-invite[open]{animation:ip-invite-enter .28s ease-out}
@keyframes ip-invite-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){
 dialog.ip-invite{width:min(370px,calc(100% - 32px));max-height:65svh;border-radius:13px}
 .ip-invite .ip-invite-card{display:flex;flex-direction:column;height:min(440px,64svh);min-height:0;border-radius:12px}
 .ip-invite .ip-invite-photo{width:100%;height:88%;object-position:50% 72%}
 .ip-invite .ip-invite-card::before{background:linear-gradient(180deg,#10110f80 0%,#10110f00 20%,#10110f38 35%,#10110fea 62%,#10110f 80%)}
 .ip-invite .ip-invite-main{flex:1;min-height:0;padding:18px 20px 12px;justify-content:space-between;gap:12px}
 .ip-invite .ip-invite-brand{font-size:8px;letter-spacing:.24em;padding-right:38px}
 .ip-invite .ip-invite-brand::after{margin-top:9px;width:23px}
 .ip-invite #ip-invite-title{font-size:18px;margin-bottom:4px}
 .ip-invite .ip-invite-date{font-size:clamp(42px,8.5svh,66px);line-height:.98;letter-spacing:-.055em}
 .ip-invite .ip-invite-month{font-size:20px;margin-top:5px;letter-spacing:.045em}
 .ip-invite.ip-invite-long-date .ip-invite-date{font-size:27px}
 .ip-invite .ip-invite-footer{flex:none;flex-direction:column;align-items:stretch;gap:13px;margin:0 20px;padding:12px 0 16px;background:transparent}
 .ip-invite .ip-invite-meta{justify-content:space-between;gap:10px}
 .ip-invite .ip-invite-places{order:2}
 .ip-invite .ip-invite-hours{padding-left:0;border-left:0;order:1}
 .ip-invite .ip-invite-places,.ip-invite .ip-invite-hours{font-size:11px;gap:7px}
 .ip-invite .ip-invite-hours svg{width:17px;height:17px}
 .ip-invite .ip-invite-places i{width:7px;height:7px}
 .ip-invite .ip-invite-cta{width:100%;min-width:0;min-height:44px;padding:11px 14px;font-size:14px;gap:10px}
 .ip-invite .ip-invite-close{top:4px;right:4px}
}
@media(max-width:700px) and (max-height:600px){
 .ip-invite .ip-invite-main{padding-top:12px;padding-bottom:8px;gap:5px}
 .ip-invite .ip-invite-brand::after{display:none}
 .ip-invite #ip-invite-title{font-size:16px}
 .ip-invite .ip-invite-month{font-size:16px}
 .ip-invite .ip-invite-footer{padding:8px 0 10px;gap:8px}
}
@media(prefers-reduced-motion:reduce){.ip-invite[open]{animation:none}.ip-invite .ip-invite-cta{transition:none}}
