/* Esselith App — the [esselith_install_app] block + the install banner.
 * Reads the suite tokens with the canon fallbacks; the button is the suite
 * CTA (999px pill, sentence case, brand-primary fill carrying ink, hover =
 * lift only). Contrast: ink on orange 7.47:1; on-dark on ink 13+:1. */

.es-app-install{max-width:720px;margin:0 auto;padding:clamp(28px,5vw,48px) 24px;text-align:center;font-family:var(--es-font-body,'Montserrat',system-ui,sans-serif);color:var(--es-text,#2E3D48);}
.es-app-install__icon img{width:96px;height:96px;object-fit:contain;margin:0 auto 18px;display:block;}
.es-app-install__title{margin:0 0 10px;font-family:var(--es-font-display,'Playfair Display',Georgia,serif);font-weight:600;font-size:clamp(1.6rem,3.4vw,2.1rem);line-height:1.15;letter-spacing:0;color:var(--es-ink,#071120);}
.es-app-install__lede{margin:0 auto 22px;max-width:56ch;font-size:1.02rem;line-height:1.65;}
.es-app-install__panel{margin-top:6px;}
.es-app-install__sub{margin:0 0 8px;font-family:var(--es-font-body,'Montserrat',system-ui,sans-serif);font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--es-brand-secondary,#004F71);}
.es-app-install__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px 32px;text-align:left;margin-top:8px;}
.es-app-install__done{font-weight:600;color:var(--es-brand-secondary,#004F71);}

.es-app-steps{margin:0;padding:0;list-style:none;counter-reset:es-step;text-align:left;display:inline-block;}
.es-app-steps li{position:relative;padding:0 0 12px 42px;font-size:.98rem;line-height:1.5;counter-increment:es-step;}
.es-app-steps li::before{content:counter(es-step);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;color:var(--es-text-on-dark,#E8ECF5);background:var(--es-brand-secondary,#004F71);}
.es-app-steps li:last-child{padding-bottom:0;}
.es-app-glyph{display:inline-flex;vertical-align:-3px;margin:0 2px;color:var(--es-brand-secondary,#004F71);}

.es-app-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:11px 26px;font-family:var(--es-font-body,'Montserrat',system-ui,sans-serif);font-size:.95rem;font-weight:600;letter-spacing:0;text-transform:none;line-height:1.2;border-radius:999px;text-decoration:none !important;background:var(--es-brand-primary,#ED8B00) !important;color:var(--es-ink,#071120) !important;border:2px solid var(--es-brand-primary,#ED8B00) !important;box-shadow:none;cursor:pointer;transition:transform .25s,box-shadow .25s;}
@media (hover:hover){.es-app-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -10px color-mix(in srgb,var(--es-brand-primary,#ED8B00) 55%,transparent);}}
.es-app-btn:focus-visible{outline:3px solid var(--es-brand-secondary,#004F71);outline-offset:3px;}
.es-app-btn--sm{padding:9px 18px;font-size:.88rem;}

/* Banner: a compact bar pinned to the bottom of phones. */
.es-app-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:99990;display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--es-ink,#071120);color:var(--es-text-on-dark,#E8ECF5);box-shadow:0 18px 40px -14px rgba(0,0,0,.5);font-family:var(--es-font-body,'Montserrat',system-ui,sans-serif);transform:translateY(calc(100% + 24px));opacity:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .3s;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));}
.es-app-banner.is-open{transform:none;opacity:1;}
.es-app-banner__icon{width:44px;height:44px;border-radius:10px;object-fit:contain;background:var(--es-page-bg,#F7F3EC);padding:4px;box-sizing:border-box;}
.es-app-banner__text{display:grid;gap:2px;min-width:0;font-size:.86rem;line-height:1.35;}
.es-app-banner__text strong{font-size:.92rem;}
.es-app-banner__actions{grid-column:1 / -1;display:flex;align-items:center;gap:14px;justify-content:flex-end;}
.es-app-banner__dismiss{background:none;border:0;padding:6px 2px;color:var(--es-text-on-dark,#E8ECF5);opacity:.85;font:inherit;font-size:.86rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.es-app-banner__steps{margin-top:8px;color:var(--es-text-on-dark,#E8ECF5);}
.es-app-banner__steps .es-app-steps li{font-size:.86rem;padding-left:36px;}
.es-app-banner__steps .es-app-steps li::before{width:24px;height:24px;font-size:.72rem;background:var(--es-brand-primary,#ED8B00);color:var(--es-ink,#071120);}
.es-app-banner__steps .es-app-glyph{color:var(--es-brand-primary,#ED8B00);}
/* Notifications control: below the install panels, or on its own via [esselith_push_button]. */
.es-app-push{margin-top:22px;padding-top:18px;border-top:1px solid var(--es-border,#E3E7EB);}
.es-app-push--compact{margin:0;padding:0;border:0;}
.es-app-push-wrap{text-align:center;padding:16px 0;font-family:var(--es-font-body,'Montserrat',system-ui,sans-serif);color:var(--es-text,#2E3D48);}
.es-app-push__note{margin:10px auto 0;max-width:48ch;font-size:.9rem;line-height:1.5;opacity:.85;}
.es-app-push__state{margin:0;display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--es-brand-secondary,#004F71);}
.es-app-push__link{background:none;border:0;padding:6px 2px;margin-left:12px;color:var(--es-brand-secondary,#004F71);font:inherit;font-size:.9rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.es-app-btn--ghost{background:transparent !important;color:var(--es-brand-secondary,#004F71) !important;border-color:var(--es-brand-secondary,#004F71) !important;}
@media (hover:hover){.es-app-btn--ghost:hover{background:var(--es-brand-secondary,#004F71) !important;color:#fff !important;box-shadow:none;}}

@media (min-width:600px){.es-app-banner{left:auto;right:16px;bottom:16px;max-width:420px;}}
@media (prefers-reduced-motion:reduce){.es-app-banner{transition:none;}.es-app-btn{transition:none;}}
