.ntcs {
  --ntcs-text-xs: clamp(.75rem,.7rem + .25vw,.875rem);
  --ntcs-text-sm: clamp(.875rem,.8rem + .35vw,1rem);
  --ntcs-text-base: clamp(1rem,.95rem + .25vw,1.125rem);
  --ntcs-text-lg: clamp(1.125rem,1rem + .75vw,1.5rem);
  --ntcs-text-xl: clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --ntcs-text-2xl: clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --ntcs-text-3xl: clamp(2.5rem,1rem + 4vw,5rem);
  --ntcs-space-1: .25rem;
  --ntcs-space-2: .5rem;
  --ntcs-space-3: .75rem;
  --ntcs-space-4: 1rem;
  --ntcs-space-5: 1.25rem;
  --ntcs-space-6: 1.5rem;
  --ntcs-space-8: 2rem;
  --ntcs-space-10: 2.5rem;
  --ntcs-space-12: 3rem;
  --ntcs-space-16: 4rem;
  --ntcs-space-20: 5rem;
  --ntcs-space-24: 6rem;
  --ntcs-radius-md: .5rem;
  --ntcs-radius-lg: .75rem;
  --ntcs-radius-xl: 1rem;
  --ntcs-radius-2xl: 1.5rem;
  --ntcs-radius-full: 9999px;
  --ntcs-bg: var(--color-bg, #0e0d0b);
  --ntcs-surface: var(--color-surface, #141310);
  --ntcs-surface-2: var(--color-surface-2, #1a1916);
  --ntcs-surface-offset: var(--color-surface-offset, #252320);
  --ntcs-surface-dynamic: var(--color-surface-dynamic, #2e2c28);
  --ntcs-divider: var(--color-divider, #2a2825);
  --ntcs-border: var(--color-border, rgba(255,255,255,.08));
  --ntcs-text: var(--color-text, #f0ede8);
  --ntcs-text-muted: var(--color-text-muted, #9e9b95);
  --ntcs-text-faint: var(--color-text-faint, #5c5a55);
  --ntcs-text-inverse: var(--color-text-inverse, #0e0d0b);
  --ntcs-accent: var(--color-accent, #e8a020);
  --ntcs-accent-hover: var(--color-accent-hover, #f0b030);
  --ntcs-accent-subtle: var(--color-accent-subtle, rgba(232,160,32,.12));
  --ntcs-accent-border: var(--color-accent-border, rgba(232,160,32,.25));
  --ntcs-success: var(--color-success, #4a9e5c);
  --ntcs-error: var(--color-error, #c05040);
  --ntcs-shadow-sm: 0 1px 3px rgba(0,0,0,.35);
  --ntcs-shadow-md: 0 4px 16px rgba(0,0,0,.35);
  --ntcs-shadow-lg: 0 16px 48px rgba(0,0,0,.45);
  --ntcs-shadow-xl: 0 24px 64px rgba(0,0,0,.55);
  color: var(--ntcs-text);
  background: var(--ntcs-bg);
  font-family: var(--font-body, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: var(--ntcs-text-base);
  line-height: 1.6;
  box-sizing: border-box;
}

.ntcs *, .ntcs *::before, .ntcs *::after { box-sizing: border-box; }
.ntcs a { color: inherit; text-decoration: none; }
.ntcs svg { display: block; width: 1em; height: 1em; }
.ntcs button, .ntcs input, .ntcs select { font: inherit; color: inherit; }
.ntcs button { cursor: pointer; }
.ntcs[data-lang="fr"] .ntcs-t-en,
.ntcs[data-lang="fr"] .ntcs-t-de,
.ntcs[data-lang="en"] .ntcs-t-fr,
.ntcs[data-lang="en"] .ntcs-t-de,
.ntcs[data-lang="de"] .ntcs-t-fr,
.ntcs[data-lang="de"] .ntcs-t-en { display: none !important; }

.ntcs-container { max-width: 960px; margin-inline: auto; padding-inline: var(--ntcs-space-5); }
.ntcs-container-wide { max-width: 1200px; margin-inline: auto; padding-inline: var(--ntcs-space-5); }
.ntcs-section { padding-block: clamp(var(--ntcs-space-12),8vw,var(--ntcs-space-24)); }
.ntcs-section-tight { padding-block: clamp(var(--ntcs-space-8),5vw,var(--ntcs-space-16)); }
.ntcs-section-alt { background: var(--ntcs-surface); }
.ntcs-section-dark { background: var(--ntcs-surface-2); border-block: 1px solid var(--ntcs-divider); }

.ntcs-btn,
.ntcs-btn-calculate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ntcs-space-2);
  border-radius: var(--ntcs-radius-full);
  font-size: var(--ntcs-text-sm);
  font-weight: 800;
  border: 1px solid transparent;
  transition: background .18s cubic-bezier(.16,1,.3,1), border-color .18s cubic-bezier(.16,1,.3,1), color .18s cubic-bezier(.16,1,.3,1), transform .18s cubic-bezier(.16,1,.3,1), box-shadow .18s cubic-bezier(.16,1,.3,1);
}
.ntcs-btn { padding: var(--ntcs-space-3) var(--ntcs-space-6); }
.ntcs-btn svg { width: 16px; height: 16px; }
.ntcs-btn-large { padding: var(--ntcs-space-4) var(--ntcs-space-8); font-size: var(--ntcs-text-base); border-radius: var(--ntcs-radius-xl); }
.ntcs-btn-primary { background: var(--ntcs-accent); color: var(--ntcs-text-inverse); }
.ntcs-btn-primary:hover { background: var(--ntcs-accent-hover); transform: translateY(-1px); box-shadow: var(--ntcs-shadow-md); }
.ntcs-btn-ghost { background: transparent; color: var(--ntcs-text); border-color: var(--ntcs-border); }
.ntcs-btn-ghost:hover { background: var(--ntcs-surface-offset); border-color: var(--ntcs-accent-border); }
.ntcs-btn-outline { background: transparent; color: var(--ntcs-accent); border: 1.5px solid var(--ntcs-accent-border); }
.ntcs-btn-outline:hover { background: var(--ntcs-accent-subtle); }

.ntcs-section-header { text-align: center; margin-bottom: var(--ntcs-space-10); }
.ntcs-section-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ntcs-space-2);
  margin-bottom: var(--ntcs-space-3);
  font-size: var(--ntcs-text-xs);
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ntcs-accent);
}
.ntcs-section-label svg { width: 12px; height: 12px; }
.ntcs-section-header h2,
.ntcs-estimator-heading h2,
.ntcs-security-card h2 {
  font-family: var(--font-display, Sora, system-ui, sans-serif);
  font-size: var(--ntcs-text-2xl);
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.1;
  margin: 0 0 var(--ntcs-space-4);
  color: var(--ntcs-text);
}
.ntcs-section-header p,
.ntcs-estimator-heading p { color: var(--ntcs-text-muted); max-width: 62ch; margin-inline: auto; line-height: 1.75; }

.ntcs-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(var(--ntcs-space-10),7vw,var(--ntcs-space-20)) clamp(var(--ntcs-space-8),5vw,var(--ntcs-space-12));
}
.ntcs-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: radial-gradient(ellipse 80% 60% at 60% 0%, rgba(232,160,32,.08) 0%, transparent 60%), radial-gradient(ellipse 50% 40% at 5% 100%, rgba(232,160,32,.05) 0%, transparent 50%);
}
.ntcs-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,820px); justify-content: center; text-align: center; max-width: 1200px; margin-inline: auto; padding-inline: var(--ntcs-space-5); }
.ntcs-hero-tagline { display: inline-flex; align-items: center; gap: var(--ntcs-space-2); background: var(--ntcs-accent-subtle); border: 1px solid var(--ntcs-accent-border); border-radius: var(--ntcs-radius-full); padding: var(--ntcs-space-1) var(--ntcs-space-4); font-size: var(--ntcs-text-xs); font-weight: 800; color: var(--ntcs-accent); letter-spacing: .04em; margin-bottom: var(--ntcs-space-6); }
.ntcs-hero h1 { font-family: var(--font-display, Sora, system-ui, sans-serif); font-size: var(--ntcs-text-3xl); font-weight: 800; letter-spacing: -.03em; line-height: 1.05; margin: 0 0 var(--ntcs-space-5); }
.ntcs-hero-sub { color: var(--ntcs-text-muted); line-height: 1.75; max-width: 62ch; margin: 0 auto var(--ntcs-space-8); }
.ntcs-actions { display: flex; flex-wrap: wrap; gap: var(--ntcs-space-3); justify-content: center; }
.ntcs-trust-line { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--ntcs-space-4); margin-top: var(--ntcs-space-6); padding-top: var(--ntcs-space-6); border-top: 1px solid var(--ntcs-divider); }
.ntcs-trust-item { display: inline-flex; align-items: center; gap: var(--ntcs-space-2); font-size: var(--ntcs-text-xs); color: var(--ntcs-text-muted); font-weight: 700; }
.ntcs-trust-item svg { color: var(--ntcs-accent); width: 14px; height: 14px; }

.ntcs-fare-section {
  background: radial-gradient(ellipse 60% 50% at 50% 0%, var(--ntcs-accent-subtle) 0%, transparent 62%), var(--ntcs-bg);
}
.ntcs-estimator-shell { display: flex; flex-direction: column; gap: clamp(var(--ntcs-space-5),2.5vw,var(--ntcs-space-8)); background: linear-gradient(180deg,var(--ntcs-surface),var(--ntcs-surface-2)); border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-2xl); padding: clamp(var(--ntcs-space-5),3vw,var(--ntcs-space-8)); box-shadow: var(--ntcs-shadow-xl); }
.ntcs-estimator-heading { text-align: center; max-width: 760px; margin-inline: auto; }
.ntcs-estimator-heading h2 { font-size: clamp(1.35rem,1.1rem + 1vw,2rem); margin-bottom: var(--ntcs-space-3); }
.ntcs-estimator-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(320px,.95fr); gap: clamp(var(--ntcs-space-5),3vw,var(--ntcs-space-8)); align-items: start; }
.ntcs-estimator-card,
.ntcs-result-panel { background: var(--ntcs-surface); border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-2xl); padding: var(--ntcs-space-6); box-shadow: var(--ntcs-shadow-md); min-width: 0; }
.ntcs-result-panel { position: sticky; top: 96px; }
.ntcs-form-section-title { font-size: var(--ntcs-text-xs); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--ntcs-accent); margin: 0 0 var(--ntcs-space-4); }
.ntcs-field { display: flex; flex-direction: column; gap: var(--ntcs-space-2); margin-bottom: var(--ntcs-space-4); }
.ntcs-field label { font-size: var(--ntcs-text-xs); font-weight: 800; color: var(--ntcs-text-muted); text-transform: uppercase; letter-spacing: .08em; }
.ntcs-input-wrap { position: relative; display: flex; align-items: center; }
.ntcs-input-wrap svg { position: absolute; left: var(--ntcs-space-4); width: 16px; height: 16px; color: var(--ntcs-text-faint); pointer-events: none; z-index: 1; }
.ntcs-field input,
.ntcs-field select { width: 100%; padding: var(--ntcs-space-3) var(--ntcs-space-4) var(--ntcs-space-3) var(--ntcs-space-10); background: var(--ntcs-surface-offset); border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-lg); color: var(--ntcs-text); font-size: var(--ntcs-text-sm); outline: none; }
.ntcs-field input:focus,
.ntcs-field select:focus { border-color: var(--ntcs-accent-border); background: var(--ntcs-surface-2); box-shadow: 0 0 0 3px var(--ntcs-accent-subtle); }
.ntcs-field input::placeholder { color: var(--ntcs-text-faint); }
.ntcs-field select option { color: #111; }
.ntcs-autocomplete-wrap { position: relative; }
.ntcs-ac-dropdown { display: none; position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 300; background: var(--ntcs-surface-2); border: 1px solid var(--ntcs-accent-border); border-radius: var(--ntcs-radius-lg); box-shadow: var(--ntcs-shadow-lg); max-height: 220px; overflow-y: auto; }
.ntcs-ac-dropdown.open { display: block; }
.ntcs-ac-item { display: flex; align-items: center; gap: var(--ntcs-space-3); padding: var(--ntcs-space-3) var(--ntcs-space-4); cursor: pointer; font-size: var(--ntcs-text-sm); color: var(--ntcs-text-muted); border-bottom: 1px solid var(--ntcs-border); }
.ntcs-ac-item:hover { background: var(--ntcs-accent-subtle); color: var(--ntcs-text); }
.ntcs-ac-spinner,
.ntcs-ac-empty { text-align: center; padding: var(--ntcs-space-4); color: var(--ntcs-text-faint); font-size: var(--ntcs-text-xs); }
.ntcs-ac-spinner { display: none; }
.ntcs-ac-spinner.visible { display: block; }
.ntcs-fields-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ntcs-space-4); }
.ntcs-divider { height: 1px; background: var(--ntcs-divider); margin: var(--ntcs-space-5) 0; }
.ntcs-wait-field { display: flex; align-items: center; gap: var(--ntcs-space-3); margin-bottom: var(--ntcs-space-4); }
.ntcs-wait-field label { flex: 1; color: var(--ntcs-text-muted); font-size: var(--ntcs-text-sm); font-weight: 800; }
.ntcs-stepper { display: flex; align-items: center; gap: var(--ntcs-space-2); }
.ntcs-stepper-btn { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--ntcs-radius-md); border: 1px solid var(--ntcs-border); background: var(--ntcs-surface-offset); color: var(--ntcs-text-muted); }
.ntcs-stepper-btn:hover { color: var(--ntcs-text); background: var(--ntcs-surface-dynamic); }
.ntcs-wait { width: 56px; text-align: center; padding: var(--ntcs-space-2) var(--ntcs-space-1); background: var(--ntcs-surface-offset); border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-md); font-family: var(--font-display, Sora, system-ui, sans-serif); font-size: var(--ntcs-text-sm); font-weight: 800; }
.ntcs-toggle-box { border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-lg); overflow: hidden; margin-bottom: var(--ntcs-space-4); }
.ntcs-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: var(--ntcs-space-4); padding: var(--ntcs-space-3) var(--ntcs-space-4); border-bottom: 1px solid var(--ntcs-divider); }
.ntcs-toggle-row:last-child { border-bottom: 0; }
.ntcs-toggle-label strong { display: block; color: var(--ntcs-text); font-size: var(--ntcs-text-sm); }
.ntcs-toggle-label small { color: var(--ntcs-text-faint); font-size: var(--ntcs-text-xs); }
.ntcs-toggle-switch { position: relative; display: block; width: 44px; height: 24px; flex-shrink: 0; }
.ntcs-toggle-switch input { opacity: 0; position: absolute; }
.ntcs-toggle-track { position: absolute; inset: 0; border-radius: var(--ntcs-radius-full); background: var(--ntcs-surface-offset); border: 1px solid var(--ntcs-border); }
.ntcs-toggle-thumb { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--ntcs-text-faint); transition: transform .18s cubic-bezier(.16,1,.3,1), background .18s cubic-bezier(.16,1,.3,1); }
.ntcs-toggle-switch input:checked ~ .ntcs-toggle-track { background: var(--ntcs-accent); border-color: var(--ntcs-accent); }
.ntcs-toggle-switch input:checked ~ .ntcs-toggle-track .ntcs-toggle-thumb { transform: translateX(20px); background: #fff; }
.ntcs-btn-calculate { width: 100%; margin-top: var(--ntcs-space-5); padding: var(--ntcs-space-4); background: var(--ntcs-accent); color: var(--ntcs-text-inverse); border-radius: var(--ntcs-radius-xl); box-shadow: 0 4px 20px var(--ntcs-accent-border); }
.ntcs-btn-calculate:hover { background: var(--ntcs-accent-hover); transform: translateY(-1px); }
.ntcs-btn-calculate:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.ntcs-btn-label { display: inline-flex; align-items: center; gap: var(--ntcs-space-2); }
.ntcs-spinner { display: none; width: 20px; height: 20px; border: 2px solid var(--ntcs-text-inverse); border-top-color: transparent; border-radius: 50%; animation: ntcs-spin .7s linear infinite; }
@keyframes ntcs-spin { to { transform: rotate(360deg); } }
.ntcs-btn-calculate.loading .ntcs-btn-label { display: none; }
.ntcs-btn-calculate.loading .ntcs-spinner { display: block; }
.ntcs-msg { display: none; padding: var(--ntcs-space-3) var(--ntcs-space-4); border-radius: var(--ntcs-radius-lg); font-size: var(--ntcs-text-sm); font-weight: 700; margin-top: var(--ntcs-space-3); }
.ntcs-msg.open { display: block; }
.ntcs-error-msg { background: rgba(192,80,64,.12); color: var(--ntcs-error); border: 1px solid rgba(192,80,64,.25); }
.ntcs-result-idle { display: grid; place-items: center; text-align: center; gap: var(--ntcs-space-4); min-height: 360px; padding: var(--ntcs-space-8) var(--ntcs-space-4); }
.ntcs-result-idle-icon { width: 56px; height: 56px; border-radius: var(--ntcs-radius-2xl); background: var(--ntcs-accent-subtle); border: 1px solid var(--ntcs-accent-border); display: grid; place-items: center; color: var(--ntcs-accent); }
.ntcs-result-idle-icon svg { width: 28px; height: 28px; }
.ntcs-result-idle h3 { font-size: var(--ntcs-text-base); margin: 0; }
.ntcs-result-idle p { color: var(--ntcs-text-faint); font-size: var(--ntcs-text-sm); max-width: 30ch; margin: 0; }
.ntcs-result-active { display: none; flex-direction: column; gap: var(--ntcs-space-5); min-height: 360px; }
.ntcs-result-header { display: flex; align-items: center; justify-content: space-between; gap: var(--ntcs-space-4); padding-bottom: var(--ntcs-space-5); border-bottom: 1px solid var(--ntcs-divider); }
.ntcs-route-label { font-size: var(--ntcs-text-xs); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ntcs-text-faint); margin-bottom: var(--ntcs-space-2); }
.ntcs-route-text { font-size: var(--ntcs-text-sm); font-weight: 800; color: var(--ntcs-text); }
.ntcs-result-badge { display: inline-flex; align-items: center; background: var(--ntcs-accent-subtle); border: 1px solid var(--ntcs-accent-border); border-radius: var(--ntcs-radius-full); padding: var(--ntcs-space-2) var(--ntcs-space-3); color: var(--ntcs-accent); font-size: var(--ntcs-text-xs); font-weight: 800; white-space: nowrap; }
.ntcs-breakdown { display: flex; flex-direction: column; }
.ntcs-breakdown-row { display: flex; align-items: center; justify-content: space-between; gap: var(--ntcs-space-4); padding: var(--ntcs-space-3) 0; border-bottom: 1px solid var(--ntcs-divider); font-size: var(--ntcs-text-sm); }
.ntcs-breakdown-row span { color: var(--ntcs-text-muted); display: inline-flex; align-items: center; gap: var(--ntcs-space-2); }
.ntcs-breakdown-row strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ntcs-row-wait, .ntcs-row-night, .ntcs-row-holiday { display: none; }
.ntcs-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ntcs-text-faint); flex-shrink: 0; }
.ntcs-total { display: flex; align-items: center; justify-content: space-between; gap: var(--ntcs-space-4); padding: var(--ntcs-space-5) var(--ntcs-space-6); background: var(--ntcs-accent-subtle); border: 1px solid var(--ntcs-accent-border); border-radius: var(--ntcs-radius-xl); }
.ntcs-total strong { display: block; font-size: var(--ntcs-text-sm); }
.ntcs-total small { display: block; color: var(--ntcs-text-faint); font-size: var(--ntcs-text-xs); }
.ntcs-total-amount { color: var(--ntcs-accent); font-family: var(--font-display, Sora, system-ui, sans-serif); font-size: var(--ntcs-text-xl); font-weight: 800; white-space: nowrap; }
.ntcs-result-note { font-size: var(--ntcs-text-xs); color: var(--ntcs-text-faint); line-height: 1.65; padding: var(--ntcs-space-3) var(--ntcs-space-4); background: var(--ntcs-surface-offset); border-radius: var(--ntcs-radius-lg); text-align: center; }
.ntcs-result-cta { display: flex; gap: var(--ntcs-space-3); }
.ntcs-result-cta .ntcs-btn { flex: 1; }
.ntcs-estimator-meta { text-align: center; margin: 0; color: var(--ntcs-text-faint); font-size: var(--ntcs-text-xs); }

.ntcs-notice { background: var(--ntcs-surface); border: 1px solid var(--ntcs-border); border-left: 3px solid var(--ntcs-accent); }
.ntcs-notice-inner { display: flex; align-items: flex-start; gap: var(--ntcs-space-4); max-width: 960px; margin-inline: auto; padding: var(--ntcs-space-5); }
.ntcs-notice-icon { width: 40px; height: 40px; border-radius: var(--ntcs-radius-md); display: grid; place-items: center; background: var(--ntcs-accent-subtle); color: var(--ntcs-accent); flex-shrink: 0; }
.ntcs-notice-icon svg { width: 20px; height: 20px; }
.ntcs-notice strong { display: block; font-size: var(--ntcs-text-sm); margin-bottom: var(--ntcs-space-1); }
.ntcs-notice p { font-size: var(--ntcs-text-sm); color: var(--ntcs-text-muted); margin: 0; }

.ntcs-services-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(400px,100%),1fr)); gap: var(--ntcs-space-6); }
.ntcs-service-card { background: var(--ntcs-surface); border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-2xl); padding: var(--ntcs-space-8); display: flex; flex-direction: column; gap: var(--ntcs-space-5); box-shadow: var(--ntcs-shadow-sm); transition: box-shadow .18s cubic-bezier(.16,1,.3,1), transform .18s cubic-bezier(.16,1,.3,1), border-color .18s cubic-bezier(.16,1,.3,1); }
.ntcs-service-card:hover { box-shadow: var(--ntcs-shadow-lg); transform: translateY(-3px); border-color: var(--ntcs-accent-border); }
.ntcs-service-icon { width: 56px; height: 56px; border-radius: var(--ntcs-radius-xl); background: var(--ntcs-surface-offset); border: 1px solid var(--ntcs-border); display: grid; place-items: center; color: var(--ntcs-accent); }
.ntcs-service-icon svg { width: 28px; height: 28px; }
.ntcs-service-card h3 { font-family: var(--font-display, Sora, system-ui, sans-serif); font-size: var(--ntcs-text-xl); line-height: 1.15; margin: 0; }
.ntcs-service-card p { color: var(--ntcs-text-muted); line-height: 1.75; margin: 0; flex: 1; }
.ntcs-service-card .ntcs-btn { align-self: flex-start; }

.ntcs-steps-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--ntcs-space-6); position: relative; }
.ntcs-steps-grid::before { content: ''; position: absolute; top: 28px; left: 40px; right: 40px; height: 1px; background: var(--ntcs-accent-border); }
.ntcs-step { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--ntcs-space-4); }
.ntcs-step-number { width: 56px; height: 56px; border-radius: var(--ntcs-radius-xl); background: var(--ntcs-surface); border: 1px solid var(--ntcs-accent-border); display: grid; place-items: center; font-family: var(--font-display, Sora, system-ui, sans-serif); font-size: var(--ntcs-text-lg); font-weight: 800; color: var(--ntcs-accent); box-shadow: var(--ntcs-shadow-sm); }
.ntcs-step h4 { margin: 0 0 var(--ntcs-space-1); font-size: var(--ntcs-text-base); }
.ntcs-step p { margin: 0; color: var(--ntcs-text-muted); font-size: var(--ntcs-text-sm); }

.ntcs-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(220px,100%),1fr)); gap: var(--ntcs-space-4); }
.ntcs-price-card { background: var(--ntcs-surface); border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-xl); padding: var(--ntcs-space-6); }
.ntcs-price-label { font-size: var(--ntcs-text-xs); font-weight: 800; color: var(--ntcs-text-muted); text-transform: uppercase; letter-spacing: .08em; }
.ntcs-price-value { font-family: var(--font-display, Sora, system-ui, sans-serif); font-size: var(--ntcs-text-xl); font-weight: 800; color: var(--ntcs-accent); letter-spacing: -.02em; margin-block: var(--ntcs-space-2); }
.ntcs-price-note { font-size: var(--ntcs-text-xs); color: var(--ntcs-text-faint); }
.ntcs-pricing-disclaimer { margin-top: var(--ntcs-space-6); padding: var(--ntcs-space-4) var(--ntcs-space-5); background: var(--ntcs-surface-offset); border-radius: var(--ntcs-radius-lg); font-size: var(--ntcs-text-sm); color: var(--ntcs-text-muted); text-align: center; }

.ntcs-parcel-layout { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ntcs-space-12); align-items: start; }
.ntcs-parcel-layout p { color: var(--ntcs-text-muted); line-height: 1.8; margin: 0 0 var(--ntcs-space-6); }
.ntcs-parcel-layout h3 { font-family: var(--font-display, Sora, system-ui, sans-serif); font-size: var(--ntcs-text-lg); margin: 0 0 var(--ntcs-space-5); color: var(--ntcs-text); }
.ntcs-restriction { margin: 0 0 var(--ntcs-space-6); padding: var(--ntcs-space-4) var(--ntcs-space-5); background: var(--ntcs-surface); border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-lg); font-size: var(--ntcs-text-sm); color: var(--ntcs-text-muted); }
.ntcs-restriction strong { display: block; color: var(--ntcs-text); margin-bottom: var(--ntcs-space-1); }
.ntcs-parcel-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--ntcs-space-3); }
.ntcs-parcel-list li { display: flex; align-items: center; gap: var(--ntcs-space-3); color: var(--ntcs-text-muted); font-size: var(--ntcs-text-sm); }
.ntcs-check-box { width: 24px; height: 24px; display: grid; place-items: center; flex-shrink: 0; background: var(--ntcs-accent-subtle); border: 1px solid var(--ntcs-accent-border); border-radius: var(--ntcs-radius-md); color: var(--ntcs-accent); }
.ntcs-check-box svg { width: 14px; height: 14px; }

.ntcs-security-card { background: var(--ntcs-surface); border: 1px solid var(--ntcs-border); border-radius: var(--ntcs-radius-2xl); padding: clamp(var(--ntcs-space-8),5vw,var(--ntcs-space-12)); text-align: center; max-width: 640px; margin-inline: auto; }
.ntcs-security-icon { width: 72px; height: 72px; margin: 0 auto var(--ntcs-space-5); background: var(--ntcs-accent-subtle); border: 1px solid var(--ntcs-accent-border); border-radius: var(--ntcs-radius-2xl); display: grid; place-items: center; color: var(--ntcs-accent); }
.ntcs-security-icon svg { width: 36px; height: 36px; }
.ntcs-security-card h2 { font-size: var(--ntcs-text-xl); }
.ntcs-security-card p { color: var(--ntcs-text-muted); max-width: 54ch; margin: 0 auto; }
.ntcs-muted-small { margin-top: var(--ntcs-space-4) !important; font-size: var(--ntcs-text-sm); color: var(--ntcs-text-faint) !important; }

.ntcs-faq-list { max-width: 640px; margin-inline: auto; }
.ntcs-faq-item { border-bottom: 1px solid var(--ntcs-divider); }
.ntcs-faq-question { display: flex; align-items: center; justify-content: space-between; gap: var(--ntcs-space-4); width: 100%; padding: var(--ntcs-space-5) 0; font-size: var(--ntcs-text-base); font-weight: 800; color: var(--ntcs-text); text-align: left; background: transparent; border: 0; }
.ntcs-faq-question:hover { color: var(--ntcs-accent); }
.ntcs-faq-icon svg { width: 20px; height: 20px; transition: transform .18s cubic-bezier(.16,1,.3,1); }
.ntcs-faq-item.open .ntcs-faq-icon svg { transform: rotate(45deg); color: var(--ntcs-accent); }
.ntcs-faq-answer { display: none; padding-bottom: var(--ntcs-space-5); color: var(--ntcs-text-muted); line-height: 1.75; }
.ntcs-faq-item.open .ntcs-faq-answer { display: block; }

.ntcs-reveal { opacity: 0; transform: translateY(24px); transition: opacity .5s cubic-bezier(.16,1,.3,1), transform .5s cubic-bezier(.16,1,.3,1); }
.ntcs-reveal.visible { opacity: 1; transform: translateY(0); }

.ntcs-error { color: var(--ntcs-error); padding: var(--ntcs-space-4); }

@media (max-width: 980px) {
  .ntcs-estimator-grid { grid-template-columns: 1fr; }
  .ntcs-result-panel { position: static; }
  .ntcs-result-idle, .ntcs-result-active { min-height: auto; }
}
@media (max-width: 900px) {
  .ntcs-steps-grid { grid-template-columns: 1fr 1fr; }
  .ntcs-steps-grid::before { display: none; }
  .ntcs-parcel-layout { grid-template-columns: 1fr; gap: var(--ntcs-space-8); }
}
@media (max-width: 640px) {
  .ntcs-actions, .ntcs-result-cta, .ntcs-total { flex-direction: column; align-items: stretch; }
  .ntcs-actions .ntcs-btn { width: 100%; }
  .ntcs-fields-row, .ntcs-steps-grid { grid-template-columns: 1fr; }
  .ntcs-estimator-shell { padding: var(--ntcs-space-4); border-radius: var(--ntcs-radius-xl); }
  .ntcs-estimator-card, .ntcs-result-panel { padding: var(--ntcs-space-5); }
  .ntcs-result-header { flex-direction: column; align-items: stretch; }
  .ntcs-result-badge { align-self: flex-start; }
  .ntcs-wait-field { align-items: flex-start; flex-direction: column; }
  .ntcs-notice-inner { padding-inline: var(--ntcs-space-4); }
}
@media (prefers-reduced-motion: reduce) {
  .ntcs *, .ntcs *::before, .ntcs *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .ntcs-reveal { opacity: 1; transform: none; }
}


/* v1.4 contrast fixes */
.ntcs-btn-primary,.ntcs-btn-calculate{color:var(--ntcs-text-inverse,#0e0d0b)!important}.ntcs-btn-ghost{color:var(--ntcs-text)!important}.ntcs input::placeholder{color:var(--ntcs-text-faint)}
[data-theme="light"] .ntcs{--ntcs-bg:#f5f3ef;--ntcs-surface:#faf9f7;--ntcs-surface-2:#fff;--ntcs-surface-offset:#ebe8e3;--ntcs-surface-dynamic:#dedad4;--ntcs-divider:#dcd9d3;--ntcs-border:rgba(0,0,0,.12);--ntcs-text:#1a1916;--ntcs-text-muted:#5f5a52;--ntcs-text-faint:#817b72;--ntcs-text-inverse:#fff;--ntcs-accent:#b96b08;--ntcs-accent-hover:#965506;--ntcs-accent-subtle:rgba(185,107,8,.12);--ntcs-accent-border:rgba(185,107,8,.28)}
