/* SiteHub — first-order discount dialog, summary reminder, discount row and toast.
   Uses the brand tokens from sitehub-brand.css (with fallbacks). */

/* independent of the page's own reset */
.shfo, .shfo *, .shfo-note, .shfo-note *, .shfo-toast, .shfo-toast * { box-sizing: border-box; }

/* discount row in the calculator summary */
.shk-line--disc { color: var(--sh-orange, #FF8A00); font-weight: 700; }
.shk-line--disc span { display: inline-flex; align-items: center; gap: 6px; }
.shk-line--disc svg.i { width: 15px; height: 15px; flex: none; }
.shk-line--disc b { color: var(--sh-orange, #FF8A00); }

/* reminder under the total (guests only) */
.shfo-note { display: flex; align-items: center; gap: 12px; margin: 4px 22px 10px; padding: 12px 14px; border-radius: 14px;
  background: rgba(255, 138, 0, .07); border: 1px solid rgba(255, 138, 0, .26); }
.shfo-note__ic { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 10px; color: var(--sh-orange, #FF8A00);
  background: rgba(255, 138, 0, .12); border: 1px solid rgba(255, 138, 0, .3); }
.shfo-note__ic svg { width: 17px; height: 17px; }
.shfo-note__t { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 13px; line-height: 1.35; color: var(--sh-text-2, #B3B3B3); }
.shfo-note__t b { color: var(--sh-text, #F5F5F5); font-weight: 700; }
.shfo-note__t a { color: var(--sh-orange, #FF8A00); font-weight: 700; text-decoration: none; }
.shfo-note__t a:hover { text-decoration: underline; }
.shfo-note__t a:focus-visible { outline: none; border-radius: 4px; box-shadow: 0 0 0 3px rgba(255, 138, 0, .5); }

/* dialog */
html.shfo-lock { overflow: hidden; }
.shfo { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 20px; font-family: var(--sh-font, 'Manrope', system-ui, sans-serif); }
.shfo__backdrop { position: absolute; inset: 0; background: rgba(5, 5, 5, .72); opacity: 0; transition: opacity .35s ease; }
.shfo.is-open .shfo__backdrop { opacity: 1; }
.shfo__dialog {
  position: relative; width: 100%; max-width: 460px; max-height: calc(100dvh - 40px); overflow: auto; padding: 32px 30px 26px; border-radius: 26px; outline: none;
  display: flex; flex-direction: column; align-items: center; text-align: center; color: var(--sh-text, #F5F5F5);
  background: radial-gradient(70% 45% at 50% 0, rgba(255, 74, 30, .16), transparent 70%), linear-gradient(180deg, #141414, #0E0E0E);
  border: 1px solid #2A2A2A; box-shadow: 0 30px 80px rgba(0, 0, 0, .6);
  opacity: 0; transform: translateY(18px) scale(.97);
  transition: opacity .4s cubic-bezier(.2, .8, .2, 1), transform .45s cubic-bezier(.2, .8, .2, 1);
}
.shfo.is-open .shfo__dialog { opacity: 1; transform: none; }
.shfo__x { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border-radius: 50%;
  background: transparent; border: 1px solid transparent; color: var(--sh-text-3, #8A8A8A); cursor: pointer; transition: color .2s, background-color .2s, border-color .2s; }
.shfo__x::before { content: ''; position: absolute; inset: -4px; }
.shfo__x svg { width: 18px; height: 18px; }
.shfo__x:hover { color: #fff; background: #1A1A1A; border-color: #2A2A2A; }
.shfo__badge { display: grid; place-items: center; width: 60px; height: 60px; margin-bottom: 16px; border-radius: 18px; color: #fff;
  background: linear-gradient(135deg, var(--sh-orange, #FF8A00), var(--sh-red, #FF3B30) 60%, var(--sh-pink, #FF2D55)); box-shadow: 0 12px 30px rgba(255, 59, 48, .35); }
.shfo__badge svg { width: 28px; height: 28px; }
.shfo__eyebrow { margin: 0 0 8px; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--sh-orange, #FF8A00); }
.shfo__eyebrow b { color: var(--sh-text, #F5F5F5); }
.shfo__title { margin: 0 0 10px; font-size: 24px; line-height: 1.2; font-weight: 800; letter-spacing: -.3px; text-wrap: balance; }
.shfo__text { margin: 0 0 18px; max-width: 380px; font-size: 15px; line-height: 1.55; color: var(--sh-text-2, #B3B3B3); }
.shfo__list { list-style: none; margin: 0 0 22px; padding: 0; width: 100%; display: grid; gap: 8px; text-align: left; }
.shfo__list li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: #151515; border: 1px solid #222; font-size: 14px; font-weight: 600; color: var(--sh-text, #F5F5F5); }
.shfo__list svg { width: 16px; height: 16px; flex: none; color: var(--sh-orange, #FF8A00); }
.shfo__cta { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 50px; padding: 0 22px; border-radius: 12px; color: #fff; text-decoration: none;
  font: 700 15px/1 var(--sh-font, 'Manrope', sans-serif); background: linear-gradient(90deg, var(--sh-orange, #FF8A00), var(--sh-red, #FF3B30) 55%, var(--sh-pink, #FF2D55));
  box-shadow: 0 12px 30px rgba(255, 59, 48, .32); transition: box-shadow .2s, transform .2s; }
.shfo__cta svg { width: 18px; height: 18px; transition: transform .2s; }
.shfo__cta:hover { box-shadow: 0 16px 38px rgba(255, 59, 48, .45); }
.shfo__cta:hover svg { transform: translateX(3px); }
.shfo__skip { margin-top: 8px; min-height: 44px; padding: 0 16px; border: 0; border-radius: 10px; background: none; color: var(--sh-text-3, #8A8A8A); cursor: pointer;
  font: 600 14px/1 var(--sh-font, 'Manrope', sans-serif); transition: color .2s; }
.shfo__skip:hover { color: var(--sh-text, #F5F5F5); }
.shfo__cta:focus-visible, .shfo__skip:focus-visible, .shfo__x:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(255, 138, 0, .5); }

/* confirmation toast (eligible clients) */
.shfo-toast { position: fixed; left: 50%; top: calc(env(safe-area-inset-top, 0px) + 84px); z-index: 99999; display: flex; align-items: center; gap: 10px; max-width: calc(100vw - 32px);
  padding: 12px 18px 12px 12px; border-radius: 14px; background: #141414; border: 1px solid rgba(255, 138, 0, .4); color: var(--sh-text, #F5F5F5);
  font: 700 14px/1.3 var(--sh-font, 'Manrope', sans-serif); box-shadow: 0 16px 40px rgba(0, 0, 0, .5);
  opacity: 0; transform: translate(-50%, -12px); transition: opacity .4s ease, transform .45s cubic-bezier(.2, .8, .2, 1); pointer-events: none; }
.shfo-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.shfo-toast__ic { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; color: #fff;
  background: linear-gradient(135deg, var(--sh-orange, #FF8A00), var(--sh-red, #FF3B30)); }
.shfo-toast__ic svg { width: 15px; height: 15px; }

@media (max-width: 520px) {
  .shfo { place-items: end center; padding: 0; }
  .shfo__dialog { max-width: none; border-radius: 26px 26px 0 0; padding: 30px 20px calc(18px + env(safe-area-inset-bottom, 0px)); max-height: 92dvh; transform: translateY(40px); }
  .shfo__title { font-size: 22px; }
  .shfo-note { margin-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .shfo__backdrop, .shfo__dialog, .shfo-toast, .shfo__cta, .shfo__cta svg { transition: none; }
}
