/* ── Tonpass design foundation ─────────────────────────────── */

body.elementor-kit-5{ background-color: var(--e-global-color-paper); }

@media (prefers-color-scheme: dark){
  body.elementor-kit-5{
    --e-global-color-primary:#EDF0F2;
    --e-global-color-secondary:#98A3AB;
    --e-global-color-text:#EDF0F2;
    --e-global-color-accent:#4FC9A6;
    --e-global-color-paper:#0C1013;
    --e-global-color-surface:#151A1E;
    --e-global-color-line:#252C32;
    --e-global-color-sunk:#101518;
    --e-global-color-accentink:#0C1013;
    --e-global-color-invline:rgba(0,0,0,0.16);
  }
}

html{ -webkit-text-size-adjust:100%; }
body{ -webkit-font-smoothing:antialiased; overflow-x:hidden; color:var(--e-global-color-primary); overflow-wrap:break-word; }

/* text editor paragraphs are spaced by the builder, not by the browser */
.elementor-widget-text-editor p{ margin:0; }
.elementor-widget-text-editor p + p{ margin-top:1em; }

/* ── grids (auto-fit, exactly as designed) ─────────────────── */
body .elementor .e-con.tp-grid-320{ --e-con-grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); --e-con-grid-template-rows:auto; }
body .elementor .e-con.tp-grid-300{ --e-con-grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); --e-con-grid-template-rows:auto; }
body .elementor .e-con.tp-grid-280{ --e-con-grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); --e-con-grid-template-rows:auto; }
body .elementor .e-con.tp-grid-240{ --e-con-grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); --e-con-grid-template-rows:auto; }
body .elementor .e-con.tp-grid-220{ --e-con-grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); --e-con-grid-template-rows:auto; }
body .elementor .e-con.tp-cols-table{ --e-con-grid-template-columns:1.5fr 1fr 1fr; --e-con-grid-template-rows:auto; }
body .elementor .e-con.tp-cols-4t{ --e-con-grid-template-columns:1.7fr 1fr 1fr 1fr; --e-con-grid-template-rows:auto; }
@media (max-width:520px){
  body .elementor .e-con.tp-cols-4t{ --e-con-grid-template-columns:1.5fr 1fr 1fr 1fr; }
}
body .elementor .e-con.tp-drow > .elementor-widget:nth-child(2){ grid-column:span 2; }

/* ── flex helpers ──────────────────────────────────────────── */
body .elementor .e-con.tp-baseline{ --align-items:baseline; }
body .elementor .e-con.tp-dot{ --flex-grow:0; --flex-shrink:0; --width:7px; --padding-top:0px; --padding-bottom:0px; --padding-left:0px; --padding-right:0px; width:7px; min-height:7px; height:7px; align-self:center; }

/* ── hero headline ─────────────────────────────────────────── */
.tp-h1 .elementor-heading-title{ display:block; }
.tp-h1-eyebrow{ display:block; font-family:"Public Sans",system-ui,sans-serif; font-weight:500; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--e-global-color-secondary); margin-bottom:18px; line-height:1.2; }
.tp-h1-price{ display:block; font-size:clamp(64px,16vw,132px); line-height:.92; font-variant-numeric:tabular-nums; }

/* ── utilities ─────────────────────────────────────────────── */
.tp-muted{ color:var(--e-global-color-secondary); }
.tp-num,.tp-num *{ font-variant-numeric:tabular-nums; }
.tp-dim{ opacity:.72; }
.tp-dim65{ opacity:.65; }
/* Elementor 4 renders widget content straight inside .elementor-element */
/* headings: the ch measure must follow the heading's own type size */
.tp-mw16 .elementor-heading-title{ max-width:16ch; margin-left:auto; margin-right:auto; }
.tp-mw20 .elementor-heading-title{ max-width:20ch; }
body .elementor .e-con .elementor-element.tp-mw22{ max-width:22ch; }
body .elementor .e-con .elementor-element.tp-mw38{ max-width:38ch; }
body .elementor .e-con .elementor-element.tp-mw40{ max-width:40ch; }
body .elementor .e-con .elementor-element.tp-mw44{ max-width:44ch; }
body .elementor .e-con .elementor-element.tp-center{ margin-left:auto; margin-right:auto; }

/* header: logo lock-up hugs its content so the tagline sits on the far right */
body .elementor .e-con.tp-header > .e-con-inner > .e-con:first-child{ --width:auto; }

/* ── dash list ─────────────────────────────────────────────── */
.tp-dash ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.tp-dash li{ display:flex; gap:12px; }
.tp-dash li::before{ content:"—"; color:var(--e-global-color-accent); font-weight:700; flex:0 0 auto; }

/* ── pull quote ────────────────────────────────────────────── */
.tp-quote{ border-left:3px solid var(--e-global-color-accent); padding:12px 0 12px 14px; }
.tp-quote strong{ font-weight:600; }

/* ── buttons ───────────────────────────────────────────────── */
.tp-btn .elementor-button{ min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:2px; transition:background-color .18s ease, color .18s ease; }
.tp-btn-block .elementor-button{ width:100%; min-height:54px; }

/* ── links ─────────────────────────────────────────────────── */
.elementor a:not(.elementor-button){ color:var(--e-global-color-accent); text-decoration:none; }
.elementor a:not(.elementor-button):hover{ color:var(--e-global-color-primary); }

/* ── small screens ─────────────────────────────────────────── */
@media (max-width:600px){
  body .elementor .e-con.tp-cols-table{ --e-con-grid-template-columns:1.4fr 1fr 1fr; }
}
