/* Draft newsletter settings: compact, image_left and image_top. */
casaluce-newsletter-dialog {
  --casa-popup-width: 560px;
  --casa-popup-radius: 12px;
  --casa-popup-bg: #F3F5F8;
  --casa-ink: #1B2433;
  --casa-brown: #5F72A2;
  --casa-border: #D4DAE6;
  --casa-button-text: #FFFFFF;
  font-family: "IBM Plex Sans", Arial, sans-serif;
  color: var(--casa-ink);
}
casaluce-newsletter-dialog *,
casaluce-newsletter-dialog *::before,
casaluce-newsletter-dialog *::after { box-sizing: border-box; }
casaluce-newsletter-dialog [hidden],
casaluce-newsletter-dialog dialog:not([open]) { display: none !important; }
casaluce-newsletter-dialog dialog {
  width: var(--casa-popup-width);
  min-width: 0;
  max-width: min(960px, calc(100vw - 32px));
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--casa-border);
  border-radius: var(--casa-popup-radius);
  background: var(--casa-popup-bg);
  color: var(--casa-ink);
  box-shadow: 0 24px 80px rgba(36, 40, 36, .24);
  overflow: auto;
  overscroll-behavior: contain;
  text-align: left;
}
casaluce-newsletter-dialog dialog::backdrop { background: rgba(36, 40, 36, .45); }
casaluce-newsletter-dialog .casa-newsletter-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  border-radius: inherit;
}
casaluce-newsletter-dialog .casa-newsletter-content {
  min-width: 0;
  padding: 52px 44px 36px;
  overflow-wrap: anywhere;
  container-name: casa-newsletter-content;
  container-type: inline-size;
}
casaluce-newsletter-dialog .casa-newsletter-media {
  display: none;
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--casa-popup-bg);
}
casaluce-newsletter-dialog .casa-newsletter-media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}
casaluce-newsletter-dialog[data-layout="image_top"] .casa-newsletter-media {
  display: block;
  height: clamp(160px, 24vw, 280px);
}
casaluce-newsletter-dialog button,
casaluce-newsletter-dialog input { font: inherit; text-transform: none; }
casaluce-newsletter-dialog button { cursor: pointer; }
casaluce-newsletter-dialog :is(button, input, a):focus-visible {
  outline: 2px solid var(--casa-brown);
  outline-offset: 4px;
}
casaluce-newsletter-dialog .casa-newsletter-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  display: grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  padding: 10px;
  border: 1px solid var(--casa-border);
  border-radius: 6px;
  color: var(--casa-brown);
  background: var(--casa-popup-bg);
}
casaluce-newsletter-dialog .casa-newsletter-close:hover { filter: brightness(.96); }
casaluce-newsletter-dialog .casa-newsletter-close svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}
casaluce-newsletter-dialog .casa-newsletter-eyebrow {
  margin: 0 0 14px;
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--casa-brown);
}
casaluce-newsletter-dialog h2 {
  margin: 0 12px 16px 0;
  font: 500 clamp(28px, 4vw, 36px)/1.18 "Libre Baskerville", Georgia, serif;
  letter-spacing: -.02em;
}
casaluce-newsletter-dialog #casa-newsletter-description {
  margin: 0 0 26px;
  color: var(--casa-ink);
  font-size: 16px;
  line-height: 1.65;
}
casaluce-newsletter-dialog label {
  display: block;
  margin-bottom: 9px;
  font-size: 14px;
  font-weight: 600;
}
casaluce-newsletter-dialog .casa-newsletter-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0;
  min-width: 0;
  border: 1px solid var(--casa-border);
  border-radius: 6px;
  overflow: hidden;
  background: var(--casa-popup-bg);
}
casaluce-newsletter-dialog input[type="email"] {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  margin: 0;
  padding: 12px 14px;
  background: var(--casa-popup-bg);
  color: var(--casa-ink);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-size: 16px;
}
casaluce-newsletter-dialog input[type="email"]:focus-visible { outline-offset: -3px; }
casaluce-newsletter-dialog input::placeholder { color: var(--casa-ink); opacity: .75; }
casaluce-newsletter-dialog button[type="submit"],
casaluce-newsletter-dialog .casa-newsletter-done {
  min-width: 0;
  min-height: 50px;
  padding: 12px 18px;
  border: 1px solid var(--casa-brown);
  border-radius: 0;
  background: var(--casa-brown);
  color: var(--casa-button-text);
  font-weight: 600;
  line-height: 1.4;
  white-space: normal;
}
casaluce-newsletter-dialog button[type="submit"]:hover,
casaluce-newsletter-dialog .casa-newsletter-done:hover { filter: brightness(.92); }
casaluce-newsletter-dialog button[type="submit"]:disabled { opacity: .7; cursor: wait; }
casaluce-newsletter-dialog .casa-newsletter-privacy { margin: 12px 0 0; font-size: 13px; line-height: 1.5; }
casaluce-newsletter-dialog .casa-newsletter-privacy a { color: var(--casa-ink); text-decoration: underline; text-underline-offset: 3px; }
casaluce-newsletter-dialog .casa-newsletter-dismiss {
  display: block;
  min-height: 44px;
  margin: 14px auto 0;
  padding: 10px 14px;
  border: 0;
  background: transparent;
  color: var(--casa-brown);
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 4px;
}
casaluce-newsletter-dialog .casa-newsletter-done { display: block; width: 100%; margin-top: 24px; border-radius: 6px; }
casaluce-newsletter-dialog .notification {
  display: none !important;
  margin: 0 0 20px !important;
  padding: 16px 18px !important;
  border: 1px solid var(--casa-border) !important;
  border-radius: 8px !important;
  background: var(--casa-popup-bg) !important;
  color: var(--casa-ink) !important;
  box-shadow: none !important;
  font-size: 15px;
  line-height: 1.6;
}
casaluce-newsletter-dialog .notification.show { display: block !important; }
casaluce-newsletter-dialog .notification.warning { border-left: 4px solid var(--casa-brown) !important; }
casaluce-newsletter-dialog .notification.success { border-left: 4px solid var(--casa-brown) !important; margin-bottom: 0 !important; }
casaluce-newsletter-dialog .notification:focus-visible { outline: 2px solid var(--casa-brown); outline-offset: 4px; }
casaluce-newsletter-dialog .notification h3 { margin: 0 0 12px; font: 500 28px/1.25 "Libre Baskerville", Georgia, serif; }
casaluce-newsletter-dialog .notification p { margin: 0; }
/* Keep the native form's success notification; hide its fields, not the form. */
casaluce-newsletter-dialog[data-subscribed] .casa-newsletter-intro,
casaluce-newsletter-dialog[data-subscribed] .casa-newsletter-fields,
casaluce-newsletter-dialog[data-subscribed] .casa-newsletter-dismiss { display: none !important; }
casaluce-newsletter-dialog [data-casa-newsletter-preview] {
  position: fixed;
  left: max(16px, env(safe-area-inset-left));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 60;
  min-height: 44px;
  max-width: min(260px, calc(100vw - 96px));
  padding: 10px 14px;
  border: 1px solid var(--casa-border);
  border-radius: 6px;
  background: var(--casa-popup-bg);
  color: var(--casa-ink);
  box-shadow: 0 3px 12px rgba(36, 40, 36, .16);
  font-size: 13px;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
}
@supports (background: color-mix(in srgb, white, black)) {
  casaluce-newsletter-dialog input[type="email"] { background: color-mix(in srgb, var(--casa-popup-bg) 85%, white); }
  casaluce-newsletter-dialog .notification { background: color-mix(in srgb, var(--casa-popup-bg) 90%, var(--casa-brown)) !important; }
}
@media (min-width: 700px) {
  casaluce-newsletter-dialog[data-layout="image_left"] .casa-newsletter-shell { grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); }
  casaluce-newsletter-dialog[data-layout="image_left"] .casa-newsletter-media { display: block; min-height: 300px; }
  casaluce-newsletter-dialog[data-layout="image_left"] .casa-newsletter-content { padding: 52px clamp(20px, 3vw, 36px) 32px; }
  /* A 480–560px setting stays that width; stack controls in its narrow column. */
  casaluce-newsletter-dialog[data-layout="image_left"] .casa-newsletter-input-row { grid-template-columns: minmax(0, 1fr); gap: 10px; border: 0; overflow: visible; background: transparent; }
  casaluce-newsletter-dialog[data-layout="image_left"] input[type="email"] { border: 1px solid var(--casa-border); border-radius: 6px; }
  casaluce-newsletter-dialog[data-layout="image_left"] button[type="submit"] { border-radius: 6px; }
}
@container casa-newsletter-content (min-width: 360px) {
  casaluce-newsletter-dialog[data-layout="image_left"] .casa-newsletter-input-row { grid-template-columns: minmax(0, 1fr) auto; gap: 0; border: 1px solid var(--casa-border); overflow: hidden; background: var(--casa-popup-bg); }
  casaluce-newsletter-dialog[data-layout="image_left"] input[type="email"] { border: 0; border-radius: 0; }
  casaluce-newsletter-dialog[data-layout="image_left"] button[type="submit"] { border-radius: 0; }
}
@container casa-newsletter-content (max-width: 320px) {
  casaluce-newsletter-dialog h2 { font-size: 28px; }
  casaluce-newsletter-dialog .notification h3 { font-size: 25px; }
}
@media (max-width: 699px) {
  casaluce-newsletter-dialog .casa-newsletter-shell { grid-template-columns: minmax(0, 1fr); }
  casaluce-newsletter-dialog .casa-newsletter-content { padding: 52px 24px 24px; }
  casaluce-newsletter-dialog[data-layout="image_left"] .casa-newsletter-media,
  casaluce-newsletter-dialog[data-layout="image_top"] .casa-newsletter-media { display: block; height: 160px; min-height: 0; max-height: 160px; }
  casaluce-newsletter-dialog[data-mobile-image="false"] .casa-newsletter-media { display: none; }
  casaluce-newsletter-dialog .casa-newsletter-content .casa-newsletter-input-row { grid-template-columns: minmax(0, 1fr); gap: 10px; border: 0; background: transparent; overflow: visible; }
  casaluce-newsletter-dialog .casa-newsletter-content input[type="email"] { border: 1px solid var(--casa-border); border-radius: 6px; }
  casaluce-newsletter-dialog .casa-newsletter-content button[type="submit"] { border-radius: 6px; }
  casaluce-newsletter-dialog .notification h3 { font-size: 25px; }
}
/* Room stories: user-controlled scene changes, native subscription form. */
casaluce-newsletter-dialog dialog[open] { animation: casa-dialog-enter .22s ease-out; }
casaluce-newsletter-dialog #casa-newsletter-title:focus { outline: none; }
casaluce-newsletter-dialog .casa-newsletter-input-row:focus-within { box-shadow: 0 0 0 2px var(--casa-brown); }
casaluce-newsletter-dialog button[type="submit"] { transition: filter .16s, transform .16s; }
casaluce-newsletter-dialog button[type="submit"]:active { transform: translateY(1px); }
casaluce-newsletter-dialog .casa-newsletter-success-art { display: grid; place-items: center; width: 88px; height: 88px; margin: 0 auto 22px; border-radius: 50%; background: var(--casa-popup-bg); color: var(--casa-brown); }
casaluce-newsletter-dialog .casa-newsletter-success-art svg { width: 62px; height: 62px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
casaluce-newsletter-dialog .casa-newsletter-success-art circle { fill: var(--casa-popup-bg); }
casaluce-newsletter-dialog .notification.success.show { animation: casa-dialog-enter .22s ease-out; }
casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-shell { grid-template-columns: minmax(0, 47fr) minmax(0, 53fr); min-height: 540px; }
casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-media { display: block; min-height: 540px; background: #1B2433; }
casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-content { align-self: center; padding: 58px 34px 34px; }
casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-eyebrow { font-size: 11px; letter-spacing: .18em; margin-bottom: 22px; }
casaluce-newsletter-dialog[data-layout="room_stories"] h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.12; margin-bottom: 18px; }
casaluce-newsletter-dialog[data-layout="room_stories"] #casa-newsletter-description { font-size: 15px; line-height: 1.6; margin-bottom: 26px; }
casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-input-row { grid-template-columns: minmax(0, 1fr); gap: 10px; border: 0; overflow: visible; background: transparent; box-shadow: none; }
casaluce-newsletter-dialog[data-layout="room_stories"] input[type="email"] { background: #F3F5F8; border: 1px solid var(--casa-border); border-radius: 5px; }
casaluce-newsletter-dialog[data-layout="room_stories"] button[type="submit"] { border-radius: 5px; }
casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-privacy { font-size: 12px; }
casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-dismiss { margin-top: 16px; font-size: 13px; }
casaluce-newsletter-dialog .casa-scene-panel { position: absolute; inset: 0; margin: 0; overflow: hidden; }
casaluce-newsletter-dialog .casa-scene-panel > img { object-position: center; }
casaluce-newsletter-dialog .casa-scene-panel:not([hidden]) > img { animation: casa-scene-enter .32s ease-out; }
casaluce-newsletter-dialog .casa-scene-panel::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 24%, rgba(32,25,17,.12) 40%, rgba(32,25,17,.86) 100%); pointer-events: none; }
casaluce-newsletter-dialog .casa-scene-panel figcaption { position: absolute; z-index: 1; bottom: 167px; left: 28px; right: 28px; color: #F3F5F8; }
casaluce-newsletter-dialog .casa-scene-number { display: inline-block; border-top: 1px solid #D4DAE6; padding-top: 10px; font-size: 12px; letter-spacing: .15em; }
casaluce-newsletter-dialog .casa-scene-panel figcaption p { margin: 12px 0 0; max-width: 290px; font: 500 clamp(23px, 2.5vw, 31px)/1.2 "Libre Baskerville", Georgia, serif; text-wrap: balance; }
casaluce-newsletter-dialog .casa-scene-controls { position: absolute; z-index: 1; bottom: 24px; left: 24px; right: 24px; color: #F3F5F8; }
casaluce-newsletter-dialog .casa-scene-hint { font-size: 12px; line-height: 1.45; margin: 0 0 12px; }
casaluce-newsletter-dialog .casa-scene-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
casaluce-newsletter-dialog .casa-scene-tabs button { position: relative; display: flex; flex-direction: column; align-items: stretch; padding: 3px; gap: 5px; min-width: 0; min-height: 80px; color: #F3F5F8; border: 1px solid rgba(255,253,247,.5); background: rgba(33,27,20,.8); border-radius: 5px; font-size: 12px; line-height: 1.3; transition: background .16s, border-color .16s, transform .16s; }
casaluce-newsletter-dialog .casa-scene-tabs button[aria-selected="true"] { color: #1B2433; background: #F3F5F8; border-color: #F3F5F8; box-shadow: 0 0 0 1px #F3F5F8; }
casaluce-newsletter-dialog .casa-scene-tabs button:hover { transform: translateY(-2px); border-color: #F3F5F8; }
casaluce-newsletter-dialog .casa-scene-tabs button:focus-visible { outline: 2px solid white; outline-offset: 4px; }
casaluce-newsletter-dialog .casa-scene-tabs button img { position: static; width: 100%; height: 46px; object-fit: cover; border-radius: 2px; }
casaluce-newsletter-dialog .casa-scene-tabs button span { padding: 0 2px 3px; overflow-wrap: anywhere; }
casaluce-newsletter-dialog[data-scenes-enabled="false"] .casa-scene-panel figcaption { bottom: 34px; }
casaluce-newsletter-dialog[data-layout="room_stories"][data-subscribed] .casa-newsletter-content { padding-top: 48px; }
casaluce-newsletter-dialog[data-layout="room_stories"] .notification.success { padding: 0 !important; border: 0 !important; background: transparent !important; text-align: center; }
casaluce-newsletter-dialog[data-layout="room_stories"] .notification.success h3 { font-size: 29px; line-height: 1.2; }
@keyframes casa-dialog-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes casa-scene-enter { from { opacity: .5; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 699px) {
  casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-shell { grid-template-columns: minmax(0,1fr); min-height: 0; }
  casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-media { min-height: 228px; height: 228px; max-height: none; }
  casaluce-newsletter-dialog[data-layout="room_stories"][data-mobile-image="false"] .casa-newsletter-media { display: none; }
  casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-content { padding: 24px 24px 18px; }
  casaluce-newsletter-dialog[data-layout="room_stories"][data-mobile-image="false"] .casa-newsletter-content { padding-top: 54px; }
  casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-eyebrow { margin-bottom: 10px; font-size: 10px; }
  casaluce-newsletter-dialog[data-layout="room_stories"] h2 { font-size: 28px; margin-bottom: 12px; }
  casaluce-newsletter-dialog[data-layout="room_stories"] #casa-newsletter-description { font-size: 14px; line-height: 1.5; margin-bottom: 18px; }
  casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-dismiss { margin-top: 8px; }
  casaluce-newsletter-dialog[data-layout="room_stories"] .casa-newsletter-close { top: 8px; right: 8px; min-width: 44px; min-height: 44px; padding: 12px; }
  casaluce-newsletter-dialog .casa-scene-panel::after { background: linear-gradient(180deg, rgba(32,25,17,.56), rgba(32,25,17,.70) 25%, rgba(32,25,17,.86)); }
  casaluce-newsletter-dialog .casa-scene-panel figcaption { left: 18px; right: 52px; bottom: 109px; }
  casaluce-newsletter-dialog .casa-scene-panel figcaption p { margin: 0; font-size: 23px; max-width: 260px; }
  casaluce-newsletter-dialog .casa-scene-number { display: none; }
  casaluce-newsletter-dialog .casa-scene-controls { left: 18px; right: 18px; bottom: 14px; }
  casaluce-newsletter-dialog .casa-scene-hint { margin-bottom: 7px; font-size: 11px; }
  casaluce-newsletter-dialog .casa-scene-tabs button { min-height: 62px; font-size: 11px; gap: 3px; }
  casaluce-newsletter-dialog .casa-scene-tabs button img { height: 30px; }
  casaluce-newsletter-dialog[data-scenes-enabled="false"] .casa-scene-panel figcaption { bottom: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  casaluce-newsletter-dialog *, casaluce-newsletter-dialog *::before, casaluce-newsletter-dialog *::after { animation: none !important; transition: none !important; }
  casaluce-newsletter-dialog .casa-scene-tabs button:hover { transform: none; }
}
