.discount-dialog,
.discount-dialog *,
.discount-trigger { box-sizing:border-box; }
.discount-trigger[hidden],
.discount-dialog [hidden] { display:none !important; }
.discount-trigger { position:fixed; left:clamp(16px,3vw,28px); bottom:calc(clamp(16px,3vw,28px) + env(safe-area-inset-bottom,0px)); z-index:40; min-height:48px; padding:10px 18px; border:1px solid #C9A96E; border-radius:24px; background:#FBF8F2; color:#3D0C1A; box-shadow:0 4px 16px rgba(26,22,20,.15); font-size:14px !important; letter-spacing:.04em !important; text-transform:none !important; cursor:pointer; }
.discount-trigger:hover { background:#EDE2D1; }
.discount-dialog { position:fixed; inset:0; margin:auto; padding:0; width:calc(100% - 32px); max-width:820px; max-height:calc(100vh - 40px); max-height:calc(100svh - 40px); overflow:auto; overscroll-behavior:contain; border:1px solid rgba(201,169,110,.4); color:#251C17; background:#FBF8F2; box-shadow:0 24px 80px rgba(18,14,12,.2); }
.discount-dialog::backdrop { background:rgba(22,11,11,.66); backdrop-filter:blur(3px); }
.discount-layout { display:grid; grid-template-columns:.85fr 1.15fr; }
.discount-photo { min-height:100%; background:url('img/hero-mobile-torretta-abbraccio-v1.webp') center 45%/cover; }
.discount-copy { padding:38px 34px 30px; position:relative; }
.discount-close { position:absolute; right:6px; top:6px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:transparent; color:#6B635A; font-size:28px !important; letter-spacing:0 !important; line-height:1; cursor:pointer; }
.discount-eyebrow { margin:0 18px 12px 0; color:#80622F; font-size:11px; letter-spacing:.14em; line-height:1.4; text-transform:uppercase; }
.discount-dialog .discount-title { margin:0 0 14px; font-family:'Cormorant Garamond',Georgia,serif !important; font-weight:400; font-size:clamp(35px,4vw,46px); line-height:1.05; color:#3D0C1A; }
.discount-description { margin:0 0 18px; font-size:16px; line-height:1.5; }
.discount-field { display:block; margin:12px 0 5px; font-size:14px; line-height:1.4; }
.discount-input { width:100%; min-height:44px; padding:10px 12px; border:1px solid #CBBEAD; background:#FFFDFA; color:#251C17; border-radius:0; font-size:16px; line-height:1.5; }
.discount-consent { display:flex; align-items:flex-start; gap:9px; margin:16px 0 0; font-size:12px; line-height:1.45; color:#5E564D; }
.discount-consent input { flex:0 0 18px; width:18px; height:18px; margin:1px 0 0; accent-color:#3D0C1A; }
.discount-consent a { color:#3D0C1A; text-underline-offset:2px; }
.discount-submit { display:block; width:100%; margin:20px 0 0; padding:14px 12px; min-height:48px; border:1px solid #3D0C1A; border-radius:0; background:#C9A96E; color:#3D0C1A; font-size:14px !important; line-height:1.4; letter-spacing:.06em !important; cursor:pointer; }
.discount-submit:hover:not(:disabled) { background:#D5B983; }
.discount-submit:disabled { cursor:wait; opacity:.7; }
.discount-later { display:block; margin:16px auto 0; padding:5px 0; min-height:32px; border:0; background:transparent; color:#6B635A; font-size:13px !important; text-transform:none !important; letter-spacing:0 !important; line-height:1.4; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.discount-feedback { margin:14px 0 0; color:#8B2332; font-size:14px; line-height:1.45; }
.discount-success { margin:20px 0 0; padding:18px; border:1px solid #D7CBBB; background:#F6F1EA; font-size:16px; line-height:1.55; }
.discount-trap { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.discount-trigger:focus-visible,
.discount-dialog button:focus-visible,
.discount-dialog input:focus-visible,
.discount-dialog a:focus-visible { outline:3px solid #9C7B45; outline-offset:3px; }
.discount-dialog .discount-title:focus { outline:none; }
@media (max-width:650px) {
  .discount-dialog { width:calc(100% - 24px); max-height:calc(100svh - 24px); }
  .discount-layout { grid-template-columns:1fr; }
  .discount-photo { height:112px; min-height:0; background-position:center 50%; }
  .discount-copy { padding:23px 22px 20px; }
  .discount-dialog .discount-title { font-size:35px; }
  .discount-close { background:rgba(251,248,242,.92); }
  .discount-eyebrow { font-size:10px; margin-bottom:9px; }
  .discount-description { margin-bottom:14px; font-size:15px; }
  .discount-submit { margin-top:17px; }
  .discount-trigger { padding:10px 15px; }
}
@media (max-width:650px) and (max-height:700px) {
  .discount-photo { height:72px; }
  .discount-copy { padding:19px 20px 16px; }
}
