/* A floating invitation; the page remains usable around it. */
#offer-dialog{position:fixed;inset:auto auto 24px 24px;z-index:1000;margin:0;width:min(354px,calc(100vw - 32px));max-height:min(610px,calc(100svh - 48px));padding:31px 28px 27px;border:1px solid #fffc;border-radius:20px;overflow:auto;color:#414335;background:radial-gradient(ellipse at 100% 0%,#fdf7ddf5 0,transparent 60%),radial-gradient(ellipse at 0% 100%,#aaa98b99 0,transparent 60%),linear-gradient(135deg,#fcfaf3 0%,#ece7d6 48%,#cec5a7 100%);box-shadow:0 18px 58px #33352826,0 4px 14px #33352815,inset 0 1px 0 #fff;overscroll-behavior:contain}
#offer-dialog::backdrop{background:transparent;backdrop-filter:none}
#offer-dialog .dialog-close{top:9px;right:10px;width:32px;height:32px;font-size:18px;font-weight:300;color:#626551;letter-spacing:0;border-radius:50%;line-height:1}
#offer-dialog .dialog-close:hover{background:#fff8}
#offer-dialog>.eyebrow{font-size:16px;letter-spacing:.17em;margin:4px 18px 16px 0;color:#656650}
#offer-dialog h2{font-size:32.4px;line-height:.98;letter-spacing:-.035em}
#offer-dialog h2 em{color:#7b7c5f}
#offer-dialog .offer-copy{font-size:16px;line-height:1.75;margin:15px 0 21px;color:#60624e}
#offer-dialog .button{width:100%;padding:12px 17px;min-height:43px;font-size:16px;line-height:1.4;white-space:normal;letter-spacing:.025em;border:1px solid #7d8062;border-radius:100px;background:linear-gradient(115deg,#929478 0%,#666d52 46%,#414b3c 100%);box-shadow:inset 0 1px 0 #ffffff50,0 5px 16px #48503b20;color:#fffdf5}
#offer-dialog .signup-reveal{justify-content:space-between}
#offer-dialog .signup-reveal span{font-size:16px;font-weight:400}
#offer-dialog .signup-intro{font-size:16px;line-height:1.6;padding-top:14px;margin:0 0 15px;border-top:1px solid #88856a40}
#offer-dialog .signup-name-row,#offer-dialog .signup-contact-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#offer-dialog label{font-size:16px;line-height:1.6;margin-bottom:10px;color:#4b503e}
#offer-dialog label span{font-size:16px;color:#666950}
#offer-dialog input{width:100%;min-width:0;font-size:16px;line-height:1.3;padding:8px 9px;margin-top:4px;border:1px solid #fff9;background:#fff9;border-radius:7px;color:#3d4535;box-shadow:inset 0 1px 3px #5c63430a}
#offer-dialog input:focus{outline:2px solid #7b8067;outline-offset:1px}
#offer-dialog .signup-permission{font-size:16px;line-height:1.6;margin:1px 0 12px;color:#62654f}
#offer-dialog .signup-permission a{text-decoration:underline;text-underline-offset:2px}
#offer-dialog .form-status{font-size:16px;line-height:1.6;margin-top:12px}
#offer-dialog .form-status:empty{margin:0}
@media(max-width:480px){#offer-dialog{left:16px;bottom:16px;max-height:calc(100svh - 110px);padding:25px 23px;width:min(330px,calc(100vw - 32px))}#offer-dialog h2{font-size:31.3px}}
@media(prefers-reduced-motion:no-preference){#offer-dialog[open]{animation:signup-enter .45s ease-out}@keyframes signup-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
/* Centered signup, with the surrounding website still visible. */
#offer-dialog{inset:0;margin:auto;width:min(440px,calc(100vw - 48px));max-height:calc(100svh - 80px);padding:28px 30px 25px;border-radius:18px;box-shadow:0 22px 70px #33352830,inset 0 1px 0 #fff}
#offer-dialog::backdrop{background:rgba(39,43,34,.2);backdrop-filter:none}
#offer-dialog>.eyebrow{margin:0 20px 12px 0;font-size:16px}
#offer-dialog h2{font-size:31.7px;line-height:1.02}
#offer-dialog .offer-copy{margin:12px 0 13px;font-size:16px;line-height:1.65}
#offer-dialog .signup-intro{padding-top:12px;margin-bottom:12px;font-size:16px;line-height:1.5}
#offer-dialog input{padding:8px 10px}
#offer-dialog .signup-permission{margin:0 0 11px}
@media(max-width:480px){#offer-dialog{inset:0;margin:auto;width:calc(100vw - 48px);max-height:calc(100svh - 80px);padding:25px 21px 22px}#offer-dialog h2{font-size:30.2px}#offer-dialog .offer-copy{font-size:16px}}
/* Align controls even when required/optional labels wrap differently. */
#offer-dialog .signup-name-row,#offer-dialog .signup-contact-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:16px}
#offer-dialog label{display:block;min-width:0}
#offer-dialog input{display:block;box-sizing:border-box;min-height:48px}
@media(max-width:600px){#offer-dialog .signup-name-row,#offer-dialog .signup-contact-row{grid-template-columns:1fr;gap:4px}}
#offer-dialog label>span{display:block}
/* A complete, compact form visible as soon as the invitation opens. */
#offer-dialog.offer-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100svh - 32px);padding:24px 26px;line-height:1.4}
#offer-dialog>.eyebrow{font-size:12.5px;line-height:1.4;letter-spacing:.12em;margin:0 40px 10px 0}
#offer-dialog h2{font-size:22px;line-height:1.04;margin:0 0 10px}
#offer-dialog .offer-copy{display:none}
#offer-dialog .popup-october-copy{font-size:14.5px;line-height:1.5;margin:0 0 12px}
#offer-dialog .signup-intro{font-size:14.5px;line-height:1.4;padding:0;border:0;margin:0 0 12px}
#offer-dialog .signup-name-row,#offer-dialog .signup-contact-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#offer-dialog label{font-size:13.5px;line-height:1.4;margin:0 0 10px}
#offer-dialog label>span{display:inline;font-size:12.5px}
#offer-dialog input{font-size:16px;line-height:1.3;min-height:44px;height:44px;padding:9px 10px;margin-top:5px;border-color:#a99f7c;background:#fffdf8}
#offer-dialog .signup-permission{font-size:12.5px;line-height:1.45;margin:2px 0 12px}
#offer-dialog .button{font-size:14.5px;line-height:1.3;min-height:46px;padding:12px}
#offer-dialog .form-status{font-size:13.5px;line-height:1.4}
#offer-dialog .dialog-close{width:36px;height:36px;font-size:18px;top:10px;right:10px}
@media(max-width:480px){#offer-dialog.offer-dialog{padding:22px 18px}#offer-dialog h2{font-size:22px}#offer-dialog .signup-contact-row{grid-template-columns:1fr;gap:0}#offer-dialog label>span{font-size:10px}#offer-dialog .signup-name-row{gap:10px}}

/* Direct booking invitation requested by Leica, September 29, 2026. */
#offer-dialog #signup-fields>.button{display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box}

@media(max-width:480px){#offer-dialog #offer-title{font-size:clamp(18px,5.1vw,22px)}}
