.pwa-push-modal[hidden] { display: none !important; }
.pwa-push-modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: grid;
  place-items: end center;
  padding: 20px;
}
.pwa-push-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 20, 38, .42);
  backdrop-filter: blur(5px);
}
.pwa-push-modal__card {
  position: relative;
  width: min(100%, 430px);
  border: 1px solid rgba(8, 31, 61, .12);
  border-radius: 24px;
  background: rgba(255, 252, 247, .98);
  box-shadow: 0 24px 70px rgba(6, 20, 38, .24);
  padding: 24px;
  color: #081f3d;
}
.pwa-push-modal__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
  background: rgba(8, 31, 61, .08);
  font-size: 20px;
}
.pwa-push-modal__title {
  margin: 0 0 8px;
  font-family: "Cormorant Garamond", serif;
  font-size: 29px;
  line-height: 1.05;
  font-weight: 600;
}
.pwa-push-modal__text {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(8, 31, 61, .75);
}
.pwa-push-modal__actions {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 10px;
  margin-top: 20px;
}
.pwa-push-modal__button {
  min-height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(8, 31, 61, .14);
  padding: 0 16px;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.pwa-push-modal__button--secondary { background: transparent; color: #081f3d; }
.pwa-push-modal__button--primary { background: #081f3d; color: #fff; border-color: #081f3d; }
.pwa-push-modal__button:disabled { opacity: .6; cursor: wait; }
html.pwa-push-modal-open { overflow: hidden; }
@media (min-width: 720px) {
  .pwa-push-modal { place-items: center; }
}


/* PWA install education --------------------------------------------------- */
.pwa-install-modal[hidden] { display: none !important; }
.pwa-install-modal {
  position: fixed;
  inset: 0;
  z-index: 1090;
  display: grid;
  place-items: end center;
  padding: 20px;
}
.pwa-install-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 20, 38, .42);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.pwa-install-modal__card {
  position: relative;
  width: min(100%, 430px);
  border: 1px solid rgba(8, 31, 61, .12);
  border-radius: 24px;
  background: rgba(255, 249, 244, .985);
  box-shadow: 0 24px 70px rgba(6, 20, 38, .24);
  padding: 24px;
  color: #102038;
}
.pwa-install-modal__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
  background: rgba(234, 215, 199, .42);
  color: #102038;
  font-size: 20px;
}
.pwa-install-modal__title {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 29px;
  line-height: 1.05;
  font-weight: 600;
}
.pwa-install-modal__benefit {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: start;
  gap: 11px;
  margin-top: 16px;
  padding: 13px 14px;
  border: 1px solid rgba(16, 32, 56, .10);
  border-radius: 15px;
  background: rgba(234, 215, 199, .28);
  color: #102038;
}
.pwa-install-modal__benefit-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(194, 48, 48, .09);
  color: #c23030;
  font-size: 15px;
  line-height: 1;
}
.pwa-install-modal__benefit p {
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  line-height: 1.55;
  font-weight: 650;
  letter-spacing: -.01em;
}
.pwa-install-modal__reassurance {
  margin: 12px 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
  color: rgba(16, 32, 56, .72);
}
.pwa-install-modal__hint {
  margin: 12px 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  line-height: 1.65;
  padding: 12px 14px;
  border: 1px solid rgba(16, 32, 56, .10);
  border-radius: 14px;
  background: rgba(234, 215, 199, .22);
  color: rgba(16, 32, 56, .88);
}
.pwa-install-modal__actions {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 10px;
  margin-top: 20px;
}
.pwa-install-modal__button {
  min-height: 46px;
  border-radius: 999px;
  border: 1px solid rgba(16, 32, 56, .14);
  padding: 0 16px;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.pwa-install-modal__button--secondary { background: transparent; color: #102038; }
.pwa-install-modal__button--primary { background: #102038; color: #FFF9F4; border-color: #102038; }
.pwa-install-modal__button:disabled { opacity: .6; cursor: wait; }
html.pwa-install-modal-open { overflow: hidden; }

@media (min-width: 720px) {
  .pwa-install-modal { place-items: center; }
}

@media (max-width: 419px) {
  .pwa-install-modal { padding: 14px; }
  .pwa-install-modal__card { padding: 20px; border-radius: 22px; }
  .pwa-install-modal__title { font-size: 27px; }
  .pwa-install-modal__benefit { grid-template-columns: 34px minmax(0, 1fr); padding: 12px; }
  .pwa-install-modal__benefit-icon { width: 32px; height: 32px; }
  .pwa-install-modal__benefit p { font-size: 13.5px; }
}


/* MKT9-A-HF3: conversion-focused install CTA + iPhone visual guide -------- */
.pwa-install-modal__ios-guide[hidden] { display: none !important; }
.pwa-install-modal__ios-guide {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid rgba(16, 32, 56, .11);
  border-radius: 16px;
  background: rgba(255, 255, 255, .70);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
}
.pwa-install-modal__guide-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 11px;
  color: #102038;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 700;
}
.pwa-install-modal__guide-heading i {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #102038;
  color: #fff;
  font-size: 15px;
}
.pwa-install-modal__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.pwa-install-modal__step {
  display: grid;
  grid-template-columns: 22px 38px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 7px 9px 7px 7px;
  border-radius: 13px;
  background: rgba(234, 215, 199, .23);
}
.pwa-install-modal__step-number {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(16, 32, 56, .09);
  color: #102038;
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  font-weight: 700;
}
.pwa-install-modal__step-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  border: 1px solid rgba(16, 32, 56, .10);
  background: #fff;
  color: #102038;
  font-size: 16px;
  box-shadow: 0 3px 10px rgba(6, 20, 38, .06);
}
.pwa-install-modal__step-copy {
  color: rgba(16, 32, 56, .92);
  font-family: "Montserrat", sans-serif;
  font-size: 12.5px;
  line-height: 1.42;
  font-weight: 600;
}
.pwa-install-modal__step--optional .pwa-install-modal__step-copy {
  color: rgba(16, 32, 56, .72);
  font-weight: 500;
}
.pwa-install-modal--guide-open .pwa-install-modal__hint {
  background: transparent;
  border-color: transparent;
  padding: 0;
  font-size: 12.5px;
}
.pwa-install-modal--guide-open .pwa-install-modal__card {
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.pwa-install-modal__button--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.pwa-install-modal__button--primary::before {
  content: "\f019";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 12px;
}
.pwa-install-modal--guide-open .pwa-install-modal__button--primary::before,
.pwa-install-modal--manual .pwa-install-modal__button--primary::before {
  content: "\f00c";
}

@media (max-width: 419px) {
  .pwa-install-modal__ios-guide { padding: 12px; }
  .pwa-install-modal__step { grid-template-columns: 20px 34px minmax(0, 1fr); gap: 8px; }
  .pwa-install-modal__step-number { width: 20px; height: 20px; }
  .pwa-install-modal__step-icon { width: 32px; height: 32px; border-radius: 10px; font-size: 14px; }
  .pwa-install-modal__step-copy { font-size: 12px; }
}

/* MKT9-B3: notification-to-install handoff -------------------------------- */
.pwa-install-modal__notification-followup[hidden] { display: none !important; }
.pwa-install-modal__notification-followup {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 13px;
  background: rgba(46, 125, 79, .08);
  border: 1px solid rgba(46, 125, 79, .15);
  color: #18382a;
  font-family: "Montserrat", sans-serif;
  font-size: 12.5px;
  line-height: 1.48;
  font-weight: 600;
}
.pwa-install-modal__notification-followup i {
  flex: 0 0 auto;
  margin-top: 2px;
  color: #2e7d4f;
  font-size: 13px;
}

/* MKT9-B4: notification settings, toggle and blocked-permission recovery ---- */
.pwa-notification-settings-modal[hidden] { display: none !important; }
.pwa-notification-settings-modal {
  position: fixed;
  inset: 0;
  z-index: 1120;
  display: grid;
  place-items: end center;
  padding: 20px;
}
.pwa-notification-settings-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 20, 38, .48);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.pwa-notification-settings-modal__card {
  position: relative;
  width: min(100%, 450px);
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid rgba(8, 31, 61, .12);
  border-radius: 24px;
  background: rgba(255, 252, 247, .99);
  box-shadow: 0 24px 70px rgba(6, 20, 38, .27);
  padding: 22px;
  color: #081f3d;
}
.pwa-notification-settings-modal__header {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) 36px;
  align-items: start;
  gap: 12px;
}
.pwa-notification-settings-modal__icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(8, 31, 61, .08);
  font-size: 19px;
}
.pwa-notification-settings-modal__title {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 28px;
  line-height: 1.05;
  font-weight: 600;
}
.pwa-notification-settings-modal__intro {
  margin: 5px 0 0;
  font-family: "Montserrat", sans-serif;
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(8, 31, 61, .67);
}
.pwa-notification-settings-modal__close {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(8, 31, 61, .10);
  border-radius: 50%;
  background: rgba(255, 255, 255, .72);
  color: #081f3d;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.pwa-notification-settings-modal__close:hover,
.pwa-notification-settings-modal__close:focus-visible {
  border-color: rgba(8, 31, 61, .28);
  outline: none;
}
.pwa-notification-settings-modal__setting {
  margin-top: 20px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 16px;
  border: 1px solid rgba(8, 31, 61, .10);
  border-radius: 17px;
  background: rgba(255, 255, 255, .64);
}
.pwa-notification-settings-modal__setting-copy {
  display: grid;
  gap: 5px;
  min-width: 0;
  font-family: "Montserrat", sans-serif;
}
.pwa-notification-settings-modal__setting-copy strong {
  font-size: 13.5px;
  font-weight: 700;
}
.pwa-notification-settings-modal__setting-copy span {
  font-size: 12px;
  line-height: 1.5;
  color: rgba(8, 31, 61, .68);
}
.pwa-notification-switch {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  padding: 4px;
  border-radius: 999px;
  cursor: pointer;
}
.pwa-notification-switch__track {
  width: 50px;
  height: 29px;
  display: block;
  position: relative;
  border-radius: 999px;
  background: #c94b4b;
  box-shadow: inset 0 0 0 1px rgba(8, 31, 61, .08);
  transition: background .2s ease, opacity .2s ease;
}
.pwa-notification-switch__thumb {
  position: absolute;
  width: 23px;
  height: 23px;
  left: 3px;
  top: 3px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 7px rgba(6, 20, 38, .22);
  transition: transform .2s ease;
}
.pwa-notification-switch[aria-checked="true"] .pwa-notification-switch__track { background: #2f8a57; }
.pwa-notification-switch[aria-checked="true"] .pwa-notification-switch__thumb { transform: translateX(21px); }
.pwa-notification-switch:focus-visible { outline: 3px solid rgba(8, 31, 61, .18); outline-offset: 2px; }
.pwa-notification-switch:disabled { cursor: not-allowed; opacity: .48; }
.pwa-notification-settings-modal__permission {
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 4px 0;
  font-family: "Montserrat", sans-serif;
  font-size: 11.5px;
  color: rgba(8, 31, 61, .62);
}
.pwa-notification-settings-modal__permission strong { color: rgba(8, 31, 61, .86); font-weight: 700; }
.pwa-notification-settings-modal__blocked[hidden] { display: none !important; }
.pwa-notification-settings-modal__blocked {
  margin-top: 17px;
  padding: 15px;
  border: 1px solid rgba(201, 75, 75, .20);
  border-radius: 17px;
  background: rgba(201, 75, 75, .055);
  font-family: "Montserrat", sans-serif;
}
.pwa-notification-settings-modal__blocked-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  color: #8b2e2e;
}
.pwa-notification-settings-modal__blocked > p {
  margin: 8px 0 0;
  font-size: 11.8px;
  line-height: 1.5;
  color: rgba(8, 31, 61, .72);
}
.pwa-notification-settings-modal__steps[hidden] { display: none !important; }
.pwa-notification-settings-modal__steps {
  list-style: none;
  margin: 13px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
  counter-reset: recovery-step;
}
.pwa-notification-settings-modal__steps li {
  counter-increment: recovery-step;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 7px 9px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .72);
  font-size: 11.5px;
  line-height: 1.4;
  color: rgba(8, 31, 61, .84);
}
.pwa-notification-settings-modal__steps li > span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(8, 31, 61, .07);
  color: #081f3d;
  font-size: 13px;
}
.pwa-notification-settings-modal__check {
  margin-top: 13px;
  min-height: 42px;
  width: 100%;
  border-radius: 999px;
  border: 1px solid rgba(8, 31, 61, .14);
  background: #081f3d;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.pwa-notification-settings-modal__check:disabled { opacity: .58; cursor: wait; }
html.pwa-notification-settings-open { overflow: hidden; }
@media (min-width: 720px) {
  .pwa-notification-settings-modal { place-items: center; }
}
@media (max-width: 419px) {
  .pwa-notification-settings-modal { padding: 13px; }
  .pwa-notification-settings-modal__card { padding: 19px; border-radius: 22px; }
  .pwa-notification-settings-modal__header { grid-template-columns: 42px minmax(0, 1fr) 34px; gap: 10px; }
  .pwa-notification-settings-modal__icon { width: 42px; height: 42px; }
  .pwa-notification-settings-modal__title { font-size: 26px; }
  .pwa-notification-settings-modal__setting { padding: 14px; gap: 12px; }
}
