/* NORTime Lapse — design system
 *
 * Values are lifted from the Claude Design export (NORTime Lapse.dc.html).
 * If a number here disagrees with the export, the export wins — re-derive it,
 * do not eyeball it.
 *
 * HOW THIS FILE IS ORGANISED
 *   1. tokens
 *   2. ground + Elementor/Astra reset
 *   3. the Elementor bridge  <- read this before editing anything
 *   4. components
 *
 * THE ELEMENTOR BRIDGE. Elementor wraps every widget in a div and puts the
 * class from `_css_classes` on that WRAPPER, not on the text element:
 *
 *   <div class="elementor-element elementor-widget-heading  nr-h1">   <- class lands here
 *     <h1 class="elementor-heading-title">…</h1>                      <- but type belongs here
 *
 * So type rules target `.nr-x .elementor-heading-title` and box rules target
 * `.nr-x`. Every rule that has to beat Elementor is prefixed `body.nortime`
 * (0,2,x) so it outranks Elementor's own `.e-con` / `.elementor-button` (0,1,x)
 * regardless of stylesheet order.
 */

/* ------------------------------------------------------------- 1. tokens */

:root {
  --nr-bg:        #0A0A0B;
  --nr-bg-deep:   #08080A;
  --nr-surface:   #121214;
  --nr-surface-2: #141519;
  --nr-surface-3: #101116;
  --nr-surface-4: #111217;
  --nr-surface-5: #1B1C20;
  --nr-ink:       #F2F2F0;
  --nr-muted:     #A2A2A6;
  --nr-muted-2:   #8A8A90;
  --nr-muted-3:   #6E6E74;
  --nr-dim:       #55555C;
  --nr-line:      #232327;
  --nr-line-4:    #1E1E22;
  --nr-chip:      #0E0E11;
  --nr-line-2:    #2A2A2F;
  --nr-line-3:    #3A3A40;
  --nr-orange:    #FF741F;
  --nr-orange-2:  #F4761F;
  --nr-orange-3:  #FF8A3D;
  --nr-orange-4:  #FFA469;

  --nr-shell: 1280px;
  --nr-gut:   clamp(20px, 4vw, 56px);
  --nr-sec-y: clamp(72px, 9vw, 140px);

  --nr-sans: Archivo, sans-serif;
  --nr-body: "Public Sans", system-ui, sans-serif;
  --nr-mono: "IBM Plex Mono", monospace;
}

/* ------------------------------------------------------------- 2. ground */

body.nortime {
  background: var(--nr-bg);
  color: var(--nr-ink);
  font-family: var(--nr-body);
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
}
body.nortime * { box-sizing: border-box; }
body.nortime a { color: var(--nr-orange); text-decoration: none; }
body.nortime a:hover { color: var(--nr-orange-4); }
body.nortime :focus-visible { outline: 2px solid var(--nr-orange); outline-offset: 3px; border-radius: 2px; }
html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.nortime * { animation: none !important; transition: none !important; }
}

body.nortime h1, body.nortime h2, body.nortime h3,
body.nortime h4, body.nortime p, body.nortime figure { margin: 0; }

@keyframes nrEntra { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* -------------------------------------------------------- 3. the bridge */

/* Elementor gives every container a column flexbox and its own padding/width
   custom properties. This design does its own layout, so zero the box and let
   the component rules below decide display. */
body.nortime .e-con,
body.nortime .e-con.e-con-full {
  --width: 100%;
  --content-width: 100%;
  --padding-block-start: 0px; --padding-block-end: 0px;
  --padding-inline-start: 0px; --padding-inline-end: 0px;
  --margin-block-start: 0px; --margin-block-end: 0px;
  --margin-inline-start: 0px; --margin-inline-end: 0px;
  --row-gap: 0px; --column-gap: 0px;
  --flex-wrap: nowrap;
}
/* Kill Elementor's default gap between widgets through its own custom property
   rather than by forcing margin-block-end. Forcing it also cancelled margins
   the design DOES want (the open FAQ answer's 24px), because a physical
   `margin` shorthand and a logical `margin-block-end` fight in the cascade. */
body.nortime .e-con,
body.nortime .elementor {
  --widgets-spacing: 0px;
  --widgets-spacing-row: 0px;
  --widgets-spacing-column: 0px;
}
body.nortime .elementor-widget-container { margin: 0; padding: 0; }

/* Astra must not add a shell around an Elementor canvas page */
body.nortime .ast-container { max-width: none; padding: 0; margin: 0; }
body.nortime .site-content { padding: 0; }
body.nortime .ast-single-entry-banner { display: none; }

/* ---------------------------------------------------------- 4. shell */

body.nortime .nr-sec {
  display: block;
  background: var(--nr-bg);
  border-bottom: 1px solid var(--nr-line);
  padding: var(--nr-sec-y) 0;
  width: 100%;
}
body.nortime .nr-shell {
  display: block;
  max-width: var(--nr-shell);
  margin: 0 auto;
  padding: 0 var(--nr-gut);
  width: 100%;
}
body.nortime .nr-head {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(24px, 4vw, 64px);
  align-items: end;
}

/* ---------------------------------------------------------- type */

body.nortime .nr-eyebrow .elementor-heading-title,
body.nortime p.nr-eyebrow {
  font-family: var(--nr-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nr-orange);
  line-height: normal;
}
body.nortime .nr-eyebrow { margin: 0; }

body.nortime .nr-h1 { margin: 20px 0 0; }
body.nortime .nr-h1 .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 86;
  font-weight: 800;
  font-size: clamp(40px, 6.4vw, 84px);
  line-height: .98;
  letter-spacing: -.025em;
  color: var(--nr-ink);
  max-width: 15ch;
  text-wrap: balance;
}

body.nortime .nr-h2 { margin: 16px 0 0; }
body.nortime .nr-h2 .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 88;
  font-weight: 700;
  font-size: clamp(30px, 4.2vw, 54px);
  line-height: 1.02;
  letter-spacing: -.02em;
  color: var(--nr-ink);
  max-width: 20ch;
}
/* Only registo's heading balances in the design. Applying it everywhere changed
   where every other heading broke its lines. */
body.nortime .nr-h2-bal .elementor-heading-title { text-wrap: balance; }
body.nortime .nr-h2-22ch .elementor-heading-title { max-width: 22ch; }
body.nortime .nr-h2-20ch .elementor-heading-title { max-width: 20ch; }

body.nortime .nr-h3 .elementor-heading-title {
  font-family: var(--nr-sans);
  font-weight: 700;
  font-size: 17px;
  line-height: 1.3;
  color: var(--nr-ink);
}

body.nortime .nr-lede .elementor-heading-title,
body.nortime .nr-lede p {
  font-family: var(--nr-body);
  font-size: 18px; line-height: 1.62; color: var(--nr-muted); max-width: 56ch;
}
body.nortime .nr-lede-hero { margin: 24px 0 0; }
body.nortime .nr-lede-hero .elementor-heading-title {
  font-family: var(--nr-body);
  font-weight: 400;
  font-size: 19px; line-height: 1.58; color: var(--nr-muted); max-width: 52ch;
}
body.nortime .nr-body .elementor-heading-title,
body.nortime .nr-body p {
  font-family: var(--nr-body);
  font-size: 16px; line-height: 1.62; color: var(--nr-muted);
}
body.nortime .nr-mono .elementor-heading-title,
body.nortime p.nr-mono {
  font-family: var(--nr-mono); font-size: 12px; color: var(--nr-muted);
  line-height: normal;
}
body.nortime .nr-confirmar,
body.nortime p.nr-confirmar {
  font-family: var(--nr-mono); font-size: 10.5px; color: var(--nr-orange);
  margin: 0; line-height: normal;
}
body.nortime .nr-cta-note { margin: 16px 0 0; }
body.nortime .nr-cta-note .elementor-heading-title {
  font-family: var(--nr-mono); font-size: 11.5px; color: var(--nr-muted-3);
  font-weight: 400; line-height: normal;
}

/* ---------------------------------------------------------- buttons */

body.nortime .nr-btn .elementor-button,
body.nortime .nr-btn-ghost .elementor-button,
body.nortime .nr-btn-sm .elementor-button {
  border-radius: 2px;
  font-family: var(--nr-sans);
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  line-height: normal;
  transition: background .18s ease, border-color .18s ease;
  text-decoration: none;
}
body.nortime .nr-btn .elementor-button {
  background-color: var(--nr-orange);
  color: var(--nr-bg);
  font-weight: 700;
  font-size: 16.5px;
  padding: 16px 24px;
  min-height: 52px;
  border: 0;
}
body.nortime .nr-btn .elementor-button:hover,
body.nortime .nr-btn .elementor-button:focus { background-color: var(--nr-orange-2); color: var(--nr-bg); }

body.nortime .nr-btn-ghost .elementor-button {
  background-color: transparent;
  color: var(--nr-ink);
  font-weight: 600;
  font-size: 16.5px;
  padding: 16px 24px;
  min-height: 52px;
  border: 1px solid var(--nr-line-3);
}
body.nortime .nr-btn-ghost .elementor-button:hover,
body.nortime .nr-btn-ghost .elementor-button:focus { border-color: var(--nr-ink); background-color: transparent; color: var(--nr-ink); }

body.nortime .nr-btn-sm .elementor-button {
  background-color: var(--nr-orange);
  color: var(--nr-bg);
  font-weight: 700;
  font-size: 14.5px;
  padding: 12px 18px;
  min-height: 44px;
  border: 0;
}
body.nortime .nr-btn-sm .elementor-button:hover,
body.nortime .nr-btn-sm .elementor-button:focus { background-color: var(--nr-orange-2); color: var(--nr-bg); }

/* Elementor centres button wrappers by default; this design left-aligns them */
body.nortime .nr-btn .elementor-button-wrapper,
body.nortime .nr-btn-ghost .elementor-button-wrapper,
body.nortime .nr-btn-sm .elementor-button-wrapper { text-align: left; }

/* ---------------------------------------------------------- header */

body.nortime .nr-header {
  display: block;
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(10,10,11,.86);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--nr-line);
  width: 100%;
}
body.nortime .nr-header-in {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px clamp(16px, 3vw, 44px);
  max-width: var(--nr-shell);
  margin: 0 auto;
  padding: 10px var(--nr-gut);
  min-height: 72px;
  width: 100%;
}
body.nortime .nr-brand-w { flex: 0 0 auto; width: auto; }
body.nortime .nr-nav-w   { flex: 0 1 auto; width: auto; margin-left: auto; }
body.nortime .nr-header-right {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  width: auto;
  margin-left: auto;
}

body.nortime .nr-brand { display: flex; align-items: center; gap: 12px; }
body.nortime .nr-brand img { display: block; height: 38px; width: auto; }
body.nortime .nr-logo-slot {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--nr-orange); color: var(--nr-bg);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--nr-mono); font-size: 8px; font-weight: 400;
  letter-spacing: .06em; line-height: 1.1; text-align: center; flex: 0 0 auto;
}
body.nortime .nr-wordmark {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 90;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -.01em;
  color: var(--nr-ink);
  line-height: normal;
}
body.nortime .nr-nav {
  display: flex;
  gap: clamp(14px, 1.7vw, 26px);
  flex-wrap: nowrap;
  overflow-x: auto;
  white-space: nowrap;
  font-size: 14.5px;
  scrollbar-width: none;
}
body.nortime .nr-nav::-webkit-scrollbar { display: none; }
body.nortime .nr-nav a { color: var(--nr-muted); line-height: normal; }
body.nortime .nr-nav a:hover { color: var(--nr-ink); }
body.nortime .nr-header-tel .elementor-heading-title,
body.nortime .nr-header-tel a {
  font-family: var(--nr-sans);
  font-weight: 600;
  font-size: 15px;
  color: var(--nr-ink);
  letter-spacing: .01em;
  line-height: normal;
}

/* ---------------------------------------------------------- hero */

body.nortime .nr-hero {
  display: block;
  border-bottom: 1px solid var(--nr-line);
  background:
    radial-gradient(120% 90% at 8% -10%, rgba(255,116,31,.07) 0%, rgba(10,10,11,0) 55%),
    var(--nr-bg);
  width: 100%;
}
body.nortime .nr-hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: clamp(32px, 5vw, 72px);
  align-items: end;
  max-width: var(--nr-shell);
  margin: 0 auto;
  padding: clamp(48px, 6vw, 92px) var(--nr-gut) 0;
  width: 100%;
}
body.nortime .nr-hero-col {
  display: block;
  animation: nrEntra .7s cubic-bezier(.2,.7,.2,1) both;
  padding-bottom: clamp(48px, 6vw, 96px);
}
body.nortime .nr-hero-media {
  position: relative;
  align-self: stretch;
  min-height: clamp(320px, 46vw, 620px);
  border-left: 1px solid var(--nr-line);
  border-top: 1px solid var(--nr-line);
  background: repeating-linear-gradient(135deg, #141519 0 12px, #101116 12px 24px);
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  padding: 18px;
}

body.nortime .nr-preco-w { margin: 30px 0 0; }
body.nortime .nr-preco-w p {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  padding: 12px 16px;
  border: 1px solid var(--nr-orange);
  border-radius: 2px;
  background: rgba(255,116,31,.07);
  font-family: var(--nr-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--nr-ink);
  flex-wrap: wrap;
  margin: 0;
  line-height: normal;
}
body.nortime .nr-preco-w strong {
  font-family: var(--nr-sans);
  font-weight: 800;
  font-size: 22px;
  color: var(--nr-orange);
  letter-spacing: -.01em;
  line-height: normal;
}
body.nortime .nr-cta-row {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 32px;
  width: 100%;
}
body.nortime .nr-cta-row > .elementor-widget { width: auto; flex: 0 0 auto; }

/* media slot — stands in until a real photo or video arrives */
body.nortime .nr-slot {
  position: relative;
  background: repeating-linear-gradient(135deg, #101116 0 12px, #141519 12px 24px);
  border: 1px solid var(--nr-line);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  width: 100%;
}
body.nortime .nr-slot-4x5  { aspect-ratio: 4 / 5; }
body.nortime .nr-slot-16x9 { aspect-ratio: 16 / 9; }
body.nortime .nr-slot-label {
  font-family: var(--nr-mono);
  font-size: 11px;
  color: var(--nr-muted-2);
  background: rgba(10,10,11,.7);
  padding: 6px 8px;
  line-height: normal;
}
/* An Elementor widget wrapper is an extra box the design does not have. Where
   the markup inside must sit directly in the parent's flex/grid, display:contents
   removes the wrapper from layout without removing the widget from the editor. */
body.nortime .nr-slot-w { display: contents; }

/* when the client drops a real image in, it fills the slot */
body.nortime .nr-slot img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------------------------------------------------------- client marks */

body.nortime .nr-marcas-sec {
  display: block;
  background: var(--nr-bg-deep);
  border-bottom: 1px solid var(--nr-line);
  width: 100%;
}
body.nortime .nr-marcas-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(20px, 4vw, 48px);
  flex-wrap: wrap;
  max-width: var(--nr-shell);
  margin: 0 auto;
  padding: 26px var(--nr-gut);
  width: 100%;
}
body.nortime .nr-marcas-t { flex: 0 0 auto; width: auto; }
body.nortime .nr-marcas-t .elementor-heading-title {
  font-family: var(--nr-mono);
  font-size: 11px;
  letter-spacing: .12em;
  line-height: normal;
  text-transform: uppercase;
  color: var(--nr-muted-3);
  font-weight: 400;
}
body.nortime .nr-marcas-w { flex: 1 1 320px; width: auto; }
body.nortime .nr-marcas {
  display: flex; align-items: center;
  gap: clamp(10px, 1.4vw, 16px); flex-wrap: wrap;
}
body.nortime .nr-marca {
  display: flex; align-items: center; gap: 10px;
  height: 52px; padding: 0 14px;
  border: 1px solid var(--nr-line-4); background: var(--nr-chip);
}
body.nortime .nr-marca-i {
  width: 26px; height: 26px; flex: 0 0 auto;
  border: 1px solid var(--nr-line-2);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--nr-sans); font-weight: 700; font-size: 11px;
  color: var(--nr-muted-3); letter-spacing: .02em;
}
body.nortime .nr-marca-t {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 92;
  font-weight: 600;
  font-size: 13.5px;
  color: var(--nr-muted-2);
  white-space: nowrap;
  line-height: normal;
}
body.nortime .nr-confirmar-w { flex: 1 1 100%; width: 100%; }

/* ---------------------------------------------------------- cards */

body.nortime .nr-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  border: 1px solid var(--nr-line);
  border-right: 0;
}
body.nortime .nr-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-right: 1px solid var(--nr-line);
  padding: clamp(24px, 3vw, 36px);
}
body.nortime .nr-card-n .elementor-heading-title {
  font-family: var(--nr-mono); font-size: 12px; font-weight: 500; color: var(--nr-orange);
}

/* ---------------------------------------------------------- narrow */

/* The design's own breakpoint is 1120px, and it does not hide the nav — the nav
   drops to its own full-width row and scrolls sideways. Only the header phone
   number goes. See responsive-spec.md. */
@media (max-width: 1119.98px) {
  body.nortime .nr-nav-w { flex: 1 1 100%; order: 3; margin-left: 0; }
  body.nortime .nr-header-tel { display: none; }
}

/* ====================================================== registo diário */

body.nortime .nr-head-l { display: block; }

/* the "DIA 30 / 30" reading, on a rule above the strip */
body.nortime .nr-leitura {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: clamp(40px, 5vw, 72px);
  padding-bottom: 14px;
  border-bottom: 1px solid var(--nr-line);
  width: 100%;
}
body.nortime .nr-viz { display: block; margin-top: clamp(28px, 4vw, 44px); }

body.nortime .nr-pelicula-w { display: contents; }
body.nortime .nr-pelicula {
  position: relative;
  background: var(--nr-bg-deep);
  border: 1px solid var(--nr-line);
  padding: clamp(14px, 2vw, 26px) clamp(10px, 1.6vw, 20px);
}
/* sprocket holes, top and bottom */
body.nortime .nr-perf {
  height: 10px;
  background: repeating-linear-gradient(90deg, #0A0A0B 0 10px, #1B1C20 10px 18px);
  opacity: .9;
}
body.nortime .nr-tira { position: relative; margin: 12px 0; }

/* base layer: always present, so the strip still reads without JS */
body.nortime .nr-tira-base {
  display: flex;
  gap: clamp(3px, .5vw, 6px);
  opacity: .22;
  filter: grayscale(1);
}
body.nortime .nr-frame {
  flex: 1 1 0;
  aspect-ratio: 1 / 1.12;
  min-width: 0;
  background: #131418;
  border: 1px solid #1B1C20;
}
/* live layer: revealed left-to-right by nortime.js as the section scrolls in */
body.nortime .nr-tira-viva {
  position: absolute;
  inset: 0;
  display: flex;
  gap: clamp(3px, .5vw, 6px);
  clip-path: inset(0 0% 0 0);
}
body.nortime .nr-frame-viva {
  flex: 1 1 0;
  aspect-ratio: 1 / 1.12;
  min-width: 0;
  padding: 0;
  cursor: default;
  position: relative;
  border: 1px solid #26262B;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
body.nortime .nr-frame-viva.is-video { border-color: var(--nr-orange); }

body.nortime .nr-tira-pes {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 14px;
  font-family: var(--nr-mono);
  font-size: 11px;
  line-height: normal;
  color: var(--nr-muted-3);
}
body.nortime .nr-tira-fim { color: var(--nr-orange); font-weight: 500; }

body.nortime .nr-viz-nota { margin: 20px 0 0; }
body.nortime .nr-viz-nota .elementor-heading-title {
  font-family: var(--nr-body);
  font-weight: 400;
  font-size: 16.5px;
  line-height: 1.6;
  color: var(--nr-muted);
  max-width: 60ch;
}

/* the four reasons, as a hairline grid */
body.nortime .nr-pontos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  margin-top: clamp(48px, 6vw, 88px);
  background: var(--nr-line);
  border: 1px solid var(--nr-line);
}
body.nortime .nr-ponto {
  display: block;
  background: var(--nr-surface);
  padding: clamp(22px, 2.6vw, 34px);
}
body.nortime .nr-ponto-n .elementor-heading-title {
  font-family: var(--nr-sans);
  font-weight: 700;
  font-size: 13px;
  color: var(--nr-orange);
  letter-spacing: .12em;
  line-height: normal;
}
body.nortime .nr-ponto-t { margin: 14px 0 0; }
body.nortime .nr-ponto-t .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 92;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.16;
  color: var(--nr-ink);
}
body.nortime .nr-ponto-p { margin: 12px 0 0; }
body.nortime .nr-ponto-p .elementor-heading-title {
  font-family: var(--nr-body);
  font-weight: 400;
  font-size: 16.5px;
  line-height: 1.58;
  color: var(--nr-muted);
}

/* colunasPontos, from the design's own script */
@media (max-width: 1199.98px) {
  body.nortime .nr-pontos { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 619.98px) {
  body.nortime .nr-pontos { grid-template-columns: 1fr; }
}

@keyframes nrDeslizaEsq { from { transform: translate3d(0,0,0); } to { transform: translate3d(-50%,0,0); } }
@keyframes nrDeslizaDir { from { transform: translate3d(-50%,0,0); } to { transform: translate3d(0,0,0); } }

/* ================================================== shared section pieces */

body.nortime .nr-sec-deep { background: var(--nr-bg-deep); }

/* head variant used from exemplos onward: eyebrow above, h2 and lede side by side */
body.nortime .nr-head2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(16px, 3vw, 56px);
  align-items: end;
  margin-top: 16px;
}
body.nortime .nr-h2-flat { margin: 0; }
body.nortime .nr-h2-flat .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 88;
  font-weight: 700;
  font-size: clamp(30px, 4.2vw, 54px);
  line-height: 1.02;
  letter-spacing: -.02em;
  color: var(--nr-ink);
}
body.nortime .nr-h2-18ch .elementor-heading-title { max-width: 18ch; }
body.nortime .nr-lede2 .elementor-heading-title {
  font-family: var(--nr-body);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  color: var(--nr-muted);
  max-width: 44ch;
}
body.nortime .nr-lede-46 .elementor-heading-title { max-width: 46ch; }

/* the real mark on the design's orange disc */
body.nortime .nr-logo-slot img { display: block; width: 100%; height: 100%; object-fit: contain; }
body.nortime .nr-logo-slot { padding: 5px; overflow: hidden; }
body.nortime .nr-logo-sm { width: 34px; height: 34px; padding: 4px; }

/* ================================================================ exemplos */

body.nortime .nr-grid3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(14px, 2vw, 28px);
  margin-top: clamp(32px, 4vw, 56px);
}
body.nortime .nr-fig { display: block; }
body.nortime .nr-poster-w { display: block; }
body.nortime .nr-poster {
  display: block;
  width: 100%;
  padding: 0;
  border: 1px solid var(--nr-line);
  background: repeating-linear-gradient(135deg, #141519 0 12px, #101116 12px 24px);
  aspect-ratio: 16 / 9;
  position: relative;
  cursor: pointer;
  overflow: hidden;
}
body.nortime .nr-poster.is-alt {
  background: repeating-linear-gradient(135deg, #16171C 0 12px, #111217 12px 24px);
}
body.nortime .nr-play-wrap {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
}
body.nortime .nr-play {
  width: 54px; height: 54px; border-radius: 50%;
  background: var(--nr-orange);
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.14);
}
body.nortime .nr-play-tri {
  width: 0; height: 0;
  border-left: 13px solid var(--nr-bg);
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  margin-left: 3px;
}
body.nortime .nr-poster-label {
  position: absolute; left: 12px; bottom: 10px;
  font-family: var(--nr-mono); font-size: 10.5px; line-height: normal;
  color: var(--nr-muted-2);
  background: rgba(8,8,10,.72);
  padding: 5px 7px;
}
body.nortime .nr-figcap {
  display: flex; flex-direction: row;
  justify-content: space-between; gap: 12px; align-items: baseline;
  margin-top: 12px;
}
body.nortime .nr-figcap-t .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 16px; line-height: normal; color: var(--nr-ink);
}
body.nortime .nr-figcap-d { flex: 0 0 auto; }
body.nortime .nr-figcap-d .elementor-heading-title {
  font-family: var(--nr-mono); font-size: 11px; line-height: normal; color: var(--nr-muted-3);
}

/* ================================================================= galeria */

body.nortime .nr-galeria {
  position: relative;
  overflow: hidden;            /* the marquee is ~6000px wide; the design clips it here */
  padding: clamp(64px, 8vw, 120px) 0;
}
body.nortime .nr-glow-w { display: contents; }
body.nortime .nr-galeria-glow {
  position: absolute;
  left: -10%; top: 0; width: 120%; height: 100%;
  background: radial-gradient(55% 55%, rgba(255,116,31,.10) 0%, rgba(255,116,31,.03) 42%, rgba(10,10,11,0) 72%);
  pointer-events: none;
}
body.nortime .nr-galeria-shell { position: relative; }
body.nortime .nr-fita-w { display: contents; }
body.nortime .nr-fita-caixa {
  position: relative;
  margin-top: clamp(32px, 4vw, 56px);
  -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, #000 14%, #000 86%, rgba(0,0,0,0) 100%);
          mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, #000 14%, #000 86%, rgba(0,0,0,0) 100%);
}
body.nortime .nr-fita {
  display: flex;
  gap: clamp(10px, 1.4vw, 18px);
  width: max-content;
}
body.nortime .nr-fita-esq { animation: nrDeslizaEsq 64s linear infinite; }
body.nortime .nr-fita-dir {
  animation: nrDeslizaDir 78s linear infinite;
  margin-top: clamp(10px, 1.4vw, 18px);
}
/* the copy says "passe o rato para parar" */
body.nortime .nr-fita-caixa:hover .nr-fita { animation-play-state: paused; }

body.nortime .nr-tile {
  margin: 0;
  flex: 0 0 auto;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--nr-line);
  background: repeating-linear-gradient(135deg, #141519 0 12px, #101116 12px 24px);
  display: flex;
  align-items: flex-end;
}
body.nortime .nr-tile.is-alt {
  background: repeating-linear-gradient(135deg, #17181D 0 12px, #111217 12px 24px);
}
body.nortime .nr-w380 { width: clamp(240px, 26vw, 380px); }
body.nortime .nr-w290 { width: clamp(190px, 20vw, 290px); }
body.nortime .nr-w440 { width: clamp(280px, 30vw, 440px); }
body.nortime .nr-tile-cap {
  font-family: var(--nr-mono); font-size: 10.5px; line-height: normal;
  color: var(--nr-muted-2);
  background: rgba(8,8,10,.72);
  padding: 5px 7px;
  margin: 10px;
}

@media (prefers-reduced-motion: reduce) {
  body.nortime .nr-fita { animation: none !important; transform: none !important; }
  body.nortime .nr-fita-caixa { overflow-x: auto !important; }
}

/* ================================================================== planos */

body.nortime .nr-matriz {
  display: block;
  margin-top: clamp(20px, 3vw, 64px);
  border: 1px solid var(--nr-line);
  background: #0C0C0E;
}
body.nortime .nr-mx-head,
body.nortime .nr-mx-linha {
  display: grid;
  grid-template-columns: minmax(240px, 1.7fr) repeat(3, minmax(150px, 1fr));
}
body.nortime .nr-mx-head { background: var(--nr-surface); }
body.nortime .nr-mx-linha { border-top: 1px solid var(--nr-line); }

body.nortime .nr-mx-lbl {
  padding: 22px 24px;
  border-right: 1px solid var(--nr-line);
}
body.nortime .nr-mx-lbl .elementor-heading-title {
  font-family: var(--nr-mono); font-size: 11px; line-height: normal;
  letter-spacing: .12em; text-transform: uppercase; color: var(--nr-muted-3);
  font-weight: 400;
}
body.nortime .nr-mx-plano {
  display: block;
  padding: 22px 24px;
  border-right: 1px solid var(--nr-line);
  background: var(--nr-surface);
  position: relative;
}
body.nortime .nr-mx-plano:last-child { border-right: 0; }
body.nortime .nr-badge-w { display: contents; }
body.nortime .nr-mx-badge {
  position: absolute; top: 0; left: 0;
  background: var(--nr-orange); color: var(--nr-bg);
  font-family: var(--nr-sans); font-weight: 700; font-size: 10px;
  letter-spacing: .14em; padding: 5px 8px;
}
body.nortime .nr-mx-nome { margin: 14px 0 0; }
body.nortime .nr-mx-nome .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 94;
  font-weight: 700; font-size: 19px; line-height: normal; color: var(--nr-ink);
}
body.nortime .nr-mx-preco { margin: 10px 0 0; }
body.nortime .nr-mx-preco p {
  display: flex; align-items: baseline; gap: 6px; margin: 0; line-height: normal;
}
body.nortime .nr-mx-preco strong {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 100;
  font-weight: 800;
  font-size: clamp(34px, 3.4vw, 46px);
  line-height: 1;
  letter-spacing: -.03em;
  color: var(--nr-orange);
  font-feature-settings: "tnum";
}
body.nortime .nr-mx-preco span {
  font-family: var(--nr-sans); font-weight: 600; font-size: 15px; color: var(--nr-orange);
}
body.nortime .nr-mx-iva { margin: 8px 0 0; }
body.nortime .nr-mx-iva .elementor-heading-title {
  font-family: var(--nr-mono); font-size: 11px; line-height: normal; color: var(--nr-muted);
}

body.nortime .nr-mx-l {
  padding: 18px 24px;
  border-right: 1px solid var(--nr-line);
}
body.nortime .nr-mx-l .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 16.5px; line-height: 1.45; color: var(--nr-ink);
}
body.nortime .nr-mx-c {
  padding: 18px 24px;
  border-right: 1px solid var(--nr-line);
}
body.nortime .nr-mx-c .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 15px; line-height: 1.45; color: var(--nr-ink);
}
body.nortime .nr-mx-c.is-on .elementor-heading-title { color: var(--nr-orange); }
/* decorative per the notes: the meaning lives in the column header */
body.nortime .nr-mx-c.is-off .elementor-heading-title { color: var(--nr-dim); }
body.nortime .nr-mx-c.is-last {
  border-right: 0;
  background: rgba(255,116,31,.03);
}

body.nortime .nr-planos-pe {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(20px, 3vw, 48px);
  align-items: center;
  margin-top: clamp(32px, 4vw, 52px);
}
body.nortime .nr-planos-nota .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 15.5px; line-height: 1.6; color: var(--nr-muted-2); max-width: 64ch;
}
body.nortime .nr-planos-cta {
  display: flex; flex-direction: row; gap: 12px; flex-wrap: wrap; justify-content: flex-end;
}
body.nortime .nr-planos-cta > .elementor-widget { width: auto; flex: 0 0 auto; }

/* ================================================================ incluído */

body.nortime .nr-inc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(20px, 2.5vw, 40px);
  margin-top: clamp(32px, 4vw, 56px);
}
body.nortime .nr-inc-col {
  display: block;
  border-top: 1px solid var(--nr-line);
  padding-top: 22px;
}
body.nortime .nr-inc-t .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 92;
  font-weight: 700; font-size: 21px; line-height: normal; color: var(--nr-ink);
}
body.nortime .nr-inc-p { margin: 12px 0 0; }
body.nortime .nr-inc-p .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 17px; line-height: 1.6; color: var(--nr-muted);
}

body.nortime .nr-rgpd {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 0;
  margin-top: clamp(28px, 3.5vw, 48px);
  border: 1px solid var(--nr-orange);
  background: var(--nr-surface);
}
body.nortime .nr-rgpd-txt { display: block; padding: clamp(28px, 3.4vw, 48px); }
body.nortime .nr-rgpd-tag .elementor-heading-title {
  font-family: var(--nr-mono); font-size: 11px; line-height: normal;
  letter-spacing: .14em; text-transform: uppercase; color: var(--nr-orange); font-weight: 400;
}
body.nortime .nr-rgpd-t { margin: 16px 0 0; }
body.nortime .nr-rgpd-t .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 88;
  font-weight: 700;
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.08;
  color: var(--nr-ink);
  max-width: 22ch;
}
body.nortime .nr-rgpd-p { margin: 16px 0 0; }
body.nortime .nr-rgpd-p .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 18px; line-height: 1.6; color: var(--nr-ink); max-width: 50ch;
}
body.nortime .nr-rgpd-media {
  min-height: 220px;
  background: repeating-linear-gradient(135deg, #141519 0 12px, #101116 12px 24px);
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  padding: 16px;
  border-left: 1px solid var(--nr-line);
}

/* =========================================================== como funciona */

body.nortime .nr-passos {
  display: flex;
  flex-direction: column;
  margin: clamp(32px, 4vw, 56px) 0 0;
  padding: 0;
}
body.nortime .nr-passo {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(12px, 3vw, 48px);
  padding: clamp(22px, 2.6vw, 32px) 0;
  border-top: 1px solid var(--nr-line);
  align-items: baseline;
}
body.nortime .nr-passo-l {
  display: flex;
  flex-direction: row;
  gap: 18px;
  align-items: baseline;
}
body.nortime .nr-passo-n { flex: 0 0 auto; }
body.nortime .nr-passo-n .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 100;
  font-weight: 800;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1;
  color: var(--nr-orange);
}
body.nortime .nr-passo-t .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 92;
  font-weight: 700;
  font-size: clamp(19px, 2vw, 25px);
  line-height: 1.14;
  color: var(--nr-ink);
}
body.nortime .nr-passo-p .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 17px; line-height: 1.6; color: var(--nr-muted);
}
body.nortime .nr-passos-pe {
  display: flex;
  flex-direction: row;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
  border-top: 1px solid var(--nr-line);
  padding-top: clamp(24px, 3vw, 36px);
}
body.nortime .nr-passos-pe > .elementor-widget { width: auto; flex: 0 0 auto; }
body.nortime .nr-passos-nota .elementor-heading-title {
  font-family: var(--nr-mono); font-size: 11.5px; line-height: normal; color: var(--nr-muted-3);
  font-weight: 400;
}

/* ==================================================================== além */

body.nortime .nr-alem { padding: clamp(60px, 7vw, 110px) 0; }
body.nortime .nr-alem-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(24px, 4vw, 64px);
  max-width: var(--nr-shell);
  margin: 0 auto;
  padding: 0 var(--nr-gut);
  width: 100%;
}
body.nortime .nr-alem-l, body.nortime .nr-alem-r { display: block; }
body.nortime .nr-h2-alem { margin: 16px 0 0; }
body.nortime .nr-h2-alem .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 88;
  font-weight: 700;
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.04;
  letter-spacing: -.02em;
  color: var(--nr-ink);
}
body.nortime .nr-chips-w { display: block; }
body.nortime .nr-chips {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 0;
  padding: 0;
}
body.nortime .nr-chips li {
  border: 1px solid var(--nr-line);
  background: var(--nr-surface);
  padding: 10px 14px;
  margin: 0;
  font-family: var(--nr-sans);
  font-weight: 600;
  font-size: 15px;
  line-height: normal;
  color: var(--nr-ink);
}

/* =============================================================== perguntas */

body.nortime .nr-perg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(24px, 4vw, 72px);
  align-items: start;
  max-width: var(--nr-shell);
  margin: 0 auto;
  padding: 0 var(--nr-gut);
  width: 100%;
}
body.nortime .nr-perg-l, body.nortime .nr-perg-r { display: block; }
body.nortime .nr-h2-perg { margin: 16px 0 0; }
body.nortime .nr-h2-perg .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 88;
  font-weight: 700;
  font-size: clamp(30px, 4.2vw, 50px);
  line-height: 1.03;
  letter-spacing: -.02em;
  color: var(--nr-ink);
  max-width: 18ch;
}
body.nortime .nr-faq { display: block; border-top: 1px solid var(--nr-line); }
body.nortime .nr-faq-h-w { display: contents; }
body.nortime .nr-faq-h { margin: 0; }
body.nortime .nr-faq-b {
  display: flex;
  width: 100%;
  gap: 16px;
  justify-content: space-between;
  align-items: baseline;
  background: none;
  border: 0;
  padding: 22px 0;
  cursor: pointer;
  text-align: left;
  min-height: 52px;
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 94;
  font-weight: 700;
  font-size: 19px;
  line-height: 1.24;
  color: var(--nr-ink);
}
body.nortime .nr-faq-sinal {
  font-family: var(--nr-mono); font-size: 15px; color: var(--nr-orange); flex: 0 0 auto;
}
/* Elementor ships `.e-con .elementor-widget.elementor-widget { margin-block-end: 0 }`
   at (0,3,0), which outranks a `body.nortime .x` rule at (0,2,1). Any BOTTOM
   margin on a widget wrapper therefore needs a third class to land. Top margins
   are unaffected, which is why only this one broke. */
body.nortime .nr-faq .nr-faq-p.elementor-widget { margin: 0 0 24px; }
body.nortime .nr-faq-p .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 17px; line-height: 1.62; color: var(--nr-muted); max-width: 62ch;
}
body.nortime .nr-faq-p.is-closed { display: none; }

/* ================================================================== footer */

body.nortime .nr-rodape { display: block; background: var(--nr-bg); padding: clamp(40px, 5vw, 64px) 0; }
body.nortime .nr-rodape-in {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
  align-items: center;
  max-width: var(--nr-shell);
  margin: 0 auto;
  padding: 0 var(--nr-gut);
  width: 100%;
}
body.nortime .nr-brand-pe { display: flex; align-items: center; gap: 12px; }
body.nortime .nr-wordmark-pe {
  font-family: var(--nr-sans); font-weight: 700; font-size: 15px; color: var(--nr-ink);
}
body.nortime .nr-rodape-p .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 15.5px; line-height: normal; color: var(--nr-muted);
}
body.nortime .nr-rodape-tel .elementor-heading-title,
body.nortime .nr-rodape-tel a {
  font-family: var(--nr-sans); font-weight: 600; font-size: 15.5px;
  line-height: normal; color: var(--nr-ink);
}
body.nortime .nr-rodape-ig .elementor-heading-title,
body.nortime .nr-rodape-ig a {
  font-family: var(--nr-body); font-size: 15.5px; line-height: normal; color: var(--nr-orange);
}

/* ================================= sticky call bar, narrow screens only */
/* nortime.js shows this once the hero is scrolled past, below 900px, matching
   the design's `movel && passouHero`. */
body.nortime .nr-barra-w { display: contents; }
body.nortime .nr-barra {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 70;
  gap: 10px;
  padding: 10px 14px;
  background: rgba(10,10,11,.94);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid var(--nr-line);
}
body.nortime .nr-barra-tel,
body.nortime .nr-barra-planos {
  display: flex; align-items: center; justify-content: center;
  min-height: 48px; border-radius: 2px;
  font-family: var(--nr-sans); font-weight: 700; font-size: 15.5px;
}
body.nortime .nr-barra-tel { flex: 1 1 auto; background: var(--nr-orange); color: var(--nr-bg); }
body.nortime .nr-barra-planos { flex: 0 0 auto; padding: 0 16px; border: 1px solid var(--nr-line-3); color: var(--nr-ink); }
@media (max-width: 899.98px) { body.nortime { padding-bottom: 84px; } }

/* ================================================================ contacto */

body.nortime .nr-contacto { background: var(--nr-surface); }
body.nortime .nr-ct-grid {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 0;
  align-items: stretch;
  max-width: var(--nr-shell);
  margin: 0 auto;
  padding: 0 var(--nr-gut);
  width: 100%;
}
body.nortime .nr-ct-l {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 3.5vw, 44px);
  padding: 0 clamp(0px, 3vw, 48px) 0 0;
}
body.nortime .nr-ct-l-top { display: block; }
body.nortime .nr-h2-ct { margin: 16px 0 0; }
body.nortime .nr-h2-ct .elementor-heading-title {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 86;
  font-weight: 800;
  font-size: clamp(32px, 4.6vw, 58px);
  line-height: 1;
  letter-spacing: -.025em;
  color: var(--nr-ink);
  max-width: 16ch;
}
body.nortime .nr-ct-lede { margin: 20px 0 0; }
body.nortime .nr-ct-lede .elementor-heading-title {
  font-family: var(--nr-body); font-weight: 400;
  font-size: 18px; line-height: 1.6; color: var(--nr-muted); max-width: 46ch;
}

/* the two contact cards sit at the bottom of the column */
body.nortime .nr-ct-cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: auto;
}
body.nortime .nr-ct-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: var(--nr-bg);
  border: 1px solid var(--nr-line);
  padding: 22px 24px;
  border-radius: 2px;
}
body.nortime .nr-ct-card.is-primary {
  background: var(--nr-orange);
  color: var(--nr-bg);
  border: 0;
}
body.nortime .nr-ct-card.is-primary:hover { background: var(--nr-orange-2); color: var(--nr-bg); }
body.nortime .nr-ct-card:not(.is-primary):hover { border-color: var(--nr-ink); }
body.nortime .nr-ct-card-l {
  font-family: var(--nr-mono); font-size: 10.5px; line-height: normal;
  letter-spacing: .14em; text-transform: uppercase; color: rgba(10,10,11,.66);
}
body.nortime .nr-ct-card-b {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 96;
  font-weight: 800;
  font-size: clamp(23px, 2.5vw, 31px);
  line-height: 1;
  letter-spacing: -.02em;
}
body.nortime .nr-ct-card-n {
  font-family: var(--nr-mono); font-size: 11.5px; line-height: normal; color: rgba(10,10,11,.72);
}
body.nortime .nr-ct-card-ig {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 96;
  font-weight: 700;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1;
  color: var(--nr-ink);
}
body.nortime .nr-ct-card-p {
  font-family: var(--nr-body);
  font-size: 15.5px; line-height: 1.5; color: var(--nr-muted);
}

body.nortime .nr-ct-r {
  display: block;
  border-left: 1px solid var(--nr-line);
  border-top: 0;
  padding: 0 0 0 clamp(28px, 3.5vw, 56px);
}

/* --------------------------------------------------------------- the form */

body.nortime .nr-form-w { display: block; }
body.nortime .nr-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 18px;
}
/* honeypot — present for bots, gone for everyone else */
body.nortime .nr-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

body.nortime .nr-form-head {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--nr-line);
}
body.nortime .nr-form-h {
  font-family: var(--nr-sans);
  font-variation-settings: "wdth" 94;
  font-weight: 700; font-size: 19px; line-height: normal; color: var(--nr-ink);
}
body.nortime .nr-form-sub {
  font-family: var(--nr-mono); font-size: 11px; line-height: normal; color: var(--nr-muted-3);
}
body.nortime .nr-form-ok {
  grid-column: 1 / -1;
  font-family: var(--nr-sans); font-weight: 700; font-size: 15px;
  color: var(--nr-orange);
  border: 1px solid var(--nr-orange);
  background: rgba(255,116,31,.07);
  padding: 12px 16px; border-radius: 2px;
}

body.nortime .nr-f { display: flex; flex-direction: column; gap: 7px; }
body.nortime .nr-f-full { grid-column: 1 / -1; }
body.nortime .nr-f-l {
  font-family: var(--nr-mono); font-size: 10.5px; line-height: normal;
  letter-spacing: .1em; text-transform: uppercase; color: var(--nr-muted-2);
}
body.nortime .nr-f-opt { text-transform: none; letter-spacing: 0; color: var(--nr-dim); }

body.nortime .nr-in {
  background: var(--nr-bg);
  border: 0;
  border-bottom: 1px solid var(--nr-line-2);
  border-radius: 0;
  color: var(--nr-ink);
  font-family: var(--nr-body);
  font-size: 17px;
  padding: 12px 2px;
  min-height: 48px;
  width: 100%;
  box-shadow: none;
}
body.nortime .nr-in:focus { border-bottom-color: var(--nr-orange); outline: 0; }
body.nortime .nr-in::placeholder { color: var(--nr-muted-3); opacity: 1; }

body.nortime .nr-ta {
  background: var(--nr-bg);
  border: 1px solid var(--nr-line-2);
  border-radius: 2px;
  color: var(--nr-ink);
  font-family: var(--nr-body);
  font-size: 17px;
  line-height: 1.5;
  padding: 14px;
  resize: vertical;
  width: 100%;
  box-shadow: none;
}
body.nortime .nr-ta:focus { border-color: var(--nr-orange); outline: 0; }
body.nortime .nr-ta::placeholder { color: var(--nr-muted-3); opacity: 1; }

body.nortime .nr-f-grupo {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 4px 0 0;
}
body.nortime .nr-f-planos { display: flex; gap: 8px; flex-wrap: wrap; }
body.nortime .nr-plano-b {
  font-family: var(--nr-sans);
  font-weight: 600;
  font-size: 14.5px;
  line-height: normal;
  padding: 11px 15px;
  min-height: 44px;
  border: 1px solid var(--nr-line-2);
  border-radius: 2px;
  cursor: pointer;
  background: transparent;
  color: var(--nr-muted);
  white-space: nowrap;
}
body.nortime .nr-plano-b:hover { border-color: var(--nr-muted); color: var(--nr-ink); }
body.nortime .nr-plano-b.is-on {
  border-color: var(--nr-orange);
  background: var(--nr-orange);
  color: var(--nr-bg);
}

body.nortime .nr-f-pe {
  grid-column: 1 / -1;
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  border-top: 1px solid var(--nr-line);
  padding-top: 20px;
}
body.nortime .nr-f-submit {
  background: var(--nr-orange);
  color: var(--nr-bg);
  font-family: var(--nr-sans);
  font-weight: 700;
  font-size: 16.5px;
  line-height: normal;
  padding: 16px 24px;
  border: 0;
  border-radius: 2px;
  min-height: 52px;
  cursor: pointer;
  white-space: nowrap;
}
body.nortime .nr-f-submit:hover { background: var(--nr-orange-2); }
body.nortime .nr-f-nota {
  font-family: var(--nr-body);
  font-size: 14.5px; line-height: 1.5; color: var(--nr-muted-2); max-width: 34ch;
}
body.nortime .nr-form .nr-confirmar { grid-column: 1 / -1; }

/* colsContacto / colsForm, from the design's own script */
@media (max-width: 979.98px) {
  body.nortime .nr-ct-grid { grid-template-columns: 1fr; }
  body.nortime .nr-ct-l { padding: 0; }
  body.nortime .nr-ct-r {
    border-left: 0;
    border-top: 1px solid var(--nr-line);
    padding: clamp(28px, 4vw, 40px) 0 0;
  }
}
@media (max-width: 619.98px) {
  body.nortime .nr-form { grid-template-columns: 1fr; }
}

/* ------------------------------------- planos: the mobile plan selector */
/* movelPlanos = w < 860. Above it the matrix shows all three plans; below it
   collapses to feature + one plan, chosen by this selector. */

body.nortime .nr-seletor-w { display: block; }
body.nortime .nr-seletor {
  display: none;
  gap: 6px;
  margin-top: clamp(28px, 4vw, 40px);
  border: 1px solid var(--nr-line);
  padding: 4px;
  border-radius: 2px;
}
body.nortime .nr-sel-b {
  flex: 1 1 0;
  font-family: var(--nr-sans);
  font-weight: 700;
  font-size: 14px;
  line-height: normal;
  padding: 12px 8px;
  min-height: 44px;
  border: 0;
  border-radius: 2px;
  cursor: pointer;
  background: transparent;
  color: var(--nr-muted);
}
body.nortime .nr-sel-b.is-on { background: var(--nr-orange); color: var(--nr-bg); }

/* the design's inner wrapper carries min-width 760px above the breakpoint */
@media (min-width: 860px) {
  body.nortime .nr-mx-head,
  body.nortime .nr-mx-linha { min-width: 760px; }
}

@media (max-width: 859.98px) {
  body.nortime .nr-seletor { display: flex; }
  body.nortime .nr-mx-head,
  body.nortime .nr-mx-linha { grid-template-columns: minmax(0, 1.5fr) minmax(96px, 1fr); }

  /* show only the selected plan's column */
  body.nortime .nr-matriz[data-nr-plano="0"] > * > :nth-child(3),
  body.nortime .nr-matriz[data-nr-plano="0"] > * > :nth-child(4),
  body.nortime .nr-matriz[data-nr-plano="1"] > * > :nth-child(2),
  body.nortime .nr-matriz[data-nr-plano="1"] > * > :nth-child(4),
  body.nortime .nr-matriz[data-nr-plano="2"] > * > :nth-child(2),
  body.nortime .nr-matriz[data-nr-plano="2"] > * > :nth-child(3) { display: none; }

  /* whichever column is last on screen carries no right border */
  body.nortime .nr-matriz .nr-mx-plano,
  body.nortime .nr-matriz .nr-mx-c { border-right: 0; }
  body.nortime .nr-matriz .nr-mx-c.is-last { background: none; }
}

/* Without JS the attribute is absent; default to Premium, as the design does. */
@media (max-width: 859.98px) {
  body.nortime .nr-matriz:not([data-nr-plano]) > * > :nth-child(2),
  body.nortime .nr-matriz:not([data-nr-plano]) > * > :nth-child(3) { display: none; }
}

/* Astra sets a heavier weight on button text; these captions are 400 in the design. */
body.nortime .nr-poster-label,
body.nortime .nr-tile-cap,
body.nortime .nr-slot-label { font-weight: 400; }
