:root {
    /* Brand palette: change these values during rebranding. */
    --ne-brand-primary: #2f7168;
    --ne-brand-primary-hover: #245a54;
    --ne-brand-primary-soft: #dcece7;
    --ne-brand-accent: #e47b62;
    --ne-brand-dark: #153138;

    /* Semantic colours: components consume these, not raw brand values. */
    --ne-color-text: var(--ne-brand-dark);
    --ne-color-text-soft: #355058;
    --ne-color-text-muted: #6d7e82;
    --ne-color-action: var(--ne-brand-primary);
    --ne-color-action-hover: var(--ne-brand-primary-hover);
    --ne-color-action-soft: var(--ne-brand-primary-soft);
    --ne-color-action-highlight: color-mix(in srgb, var(--ne-color-action) 42%, white);
    --ne-color-accent: var(--ne-brand-accent);
    --ne-color-canvas: #f1f3f1;
    --ne-color-page: #fffdf9;
    --ne-color-surface: #fff;
    --ne-color-surface-muted: #f8faf9;
    --ne-color-border: #dbe4e2;
    --ne-color-border-strong: #cbd8d5;
    --ne-color-success: #2d7566;
    --ne-color-error: #a84634;
    --ne-color-error-soft: #f9e4df;

    /* Compatibility aliases used by existing components. */
    --ne-ink: var(--ne-color-text);
    --ne-ink-soft: var(--ne-color-text-soft);
    --ne-teal: var(--ne-color-action);
    --ne-teal-dark: var(--ne-color-action-hover);
    --ne-mint: var(--ne-color-action-soft);
    --ne-sky: #e8f3f4;
    --ne-sand: #f5f0e8;
    --ne-coral: var(--ne-color-accent);
    --ne-paper: var(--ne-color-page);
    --ne-white: var(--ne-color-surface);
    --ne-line: var(--ne-color-border);
    --ne-muted: var(--ne-color-text-muted);
    --ne-success: var(--ne-color-success);

    /* Typography roles. Use only these four weights. */
    --ne-radius-xs: 6px;
    --ne-radius-sm: 18px;
    --ne-radius-md: 26px;
    --ne-radius-lg: 32px;
    --ne-shadow-sm: 0 8px 26px rgba(21, 49, 56, .07);
    --ne-shadow-lg: 0 24px 70px rgba(21, 49, 56, .14);
    --ne-font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ne-font-display: Georgia, "Times New Roman", serif;
    --ne-weight-regular: 400;
    --ne-weight-medium: 600;
    --ne-weight-bold: 700;
    --ne-weight-extra: 800;

    /* Control contract shared by Elementor, WooCommerce and Tutor LMS. */
    --ne-control-height: 48px;
    --ne-control-height-small: 42px;
    --ne-control-padding: 22px;
    --ne-control-padding-small: 16px;
    --ne-control-font-size: 11px;
    --ne-control-font-size-small: 10px;
    --ne-control-font-weight: var(--ne-weight-bold);
    --ne-control-letter-spacing: .07em;
    --ne-control-radius: var(--ne-radius-xs);
    --ne-focus-ring: 0 0 0 3px color-mix(in srgb, var(--ne-color-action) 22%, transparent);
    --ne-input-focus-ring: 0 0 0 3px color-mix(in srgb, var(--ne-color-action) 14%, transparent);

    /* Spacing scale. */
    --ne-space-1: 4px;
    --ne-space-2: 8px;
    --ne-space-3: 12px;
    --ne-space-4: 16px;
    --ne-space-5: 20px;
    --ne-space-6: 24px;
    --ne-space-8: 32px;
    --ne-space-10: 40px;
    --ne-space-12: 48px;
    --ne-container: 1560px;
    --ne-wrap-padding: clamp(24px, 3.6vw, 64px);
    --ne-section-padding: clamp(58px, 8vw, 110px);
    --ne-gutter: clamp(6px, .7vw, 12px);
}

body.nomad-english {
    color: var(--ne-ink-soft);
    font-family: var(--ne-font-sans);
    -webkit-font-smoothing: antialiased;
}

body.nomad-english ::selection {
    background: var(--ne-mint);
    color: var(--ne-ink);
}

.ne-button {
    display: inline-flex;
    box-sizing: border-box;
    min-height: var(--ne-control-height);
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 var(--ne-control-padding);
    border: 1px solid var(--ne-color-action);
    border-radius: var(--ne-control-radius);
    background: var(--ne-color-action);
    color: var(--ne-white);
    font: var(--ne-control-font-weight) var(--ne-control-font-size)/1 var(--ne-font-sans);
    letter-spacing: var(--ne-control-letter-spacing);
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}

.ne-button:hover,
.ne-button:focus-visible {
    border-color: var(--ne-color-action-hover);
    background: var(--ne-color-action-hover);
    color: var(--ne-white);
    transform: translateY(-2px);
}

.ne-button:focus-visible {
    outline: 0;
    box-shadow: var(--ne-focus-ring);
}

.ne-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ne-button--small {
    min-height: var(--ne-control-height-small);
    padding: 0 var(--ne-control-padding-small);
    font-size: var(--ne-control-font-size-small);
}

.ne-button--light {
    border-color: var(--ne-white);
    background: var(--ne-white);
    color: var(--ne-ink);
}

body.nomad-english:not(.ne-account-app) {
    background: var(--ne-color-canvas);
}

body.nomad-english:not(.ne-account-app) #site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    width: 100%;
    max-width: none;
    padding: 0 28px;
    border-bottom: 1px solid rgba(21,49,56,.09);
    background: rgba(255,253,249,.94);
    backdrop-filter: blur(16px);
}

body.admin-bar.nomad-english:not(.ne-account-app) #site-header { top: 32px; }

body.nomad-english #site-header .header-inner {
    width: 100%;
    max-width: var(--ne-container);
    min-height: 92px;
    margin: 0 auto;
    padding: 0;
}

body.nomad-english #site-header .site-title a {
    color: var(--ne-ink);
    font: 700 22px/1 var(--ne-font-sans);
    letter-spacing: .11em;
    text-transform: uppercase;
}

body.nomad-english #site-header .site-description {
    margin-top: 7px;
    color: var(--ne-muted);
    font-size: 10px;
    letter-spacing: .025em;
}

body.nomad-english #site-header .site-navigation a {
    color: var(--ne-ink-soft);
    font-size: 12px;
    font-weight: var(--ne-weight-medium);
}

body.nomad-english #site-header .site-navigation .menu > li:last-child > a {
    display: inline-flex;
    min-height: var(--ne-control-height-small);
    align-items: center;
    padding: 0 var(--ne-control-padding-small);
    border-radius: var(--ne-control-radius);
    background: var(--ne-color-action);
    color: var(--ne-white);
    font-size: var(--ne-control-font-size-small);
    font-weight: var(--ne-control-font-weight);
    letter-spacing: var(--ne-control-letter-spacing);
    text-transform: uppercase;
}

body.nomad-english #site-header .site-navigation .current-menu-item:not(:last-child) > a,
body.nomad-english #site-header .site-navigation a:hover { color: var(--ne-teal); }

body.nomad-english .elementor-button {
    display: inline-flex;
    min-height: var(--ne-control-height);
    align-items: center;
    justify-content: center;
    padding: 0 var(--ne-control-padding);
    border-radius: var(--ne-control-radius);
    background: var(--ne-color-action) !important;
    color: var(--ne-white) !important;
    font-family: var(--ne-font-sans);
    font-size: var(--ne-control-font-size);
    font-weight: var(--ne-control-font-weight);
    line-height: 1;
    letter-spacing: var(--ne-control-letter-spacing);
    text-transform: uppercase;
    transition: transform .2s ease, background-color .2s ease;
}

body.nomad-english .elementor-button:hover,
body.nomad-english .elementor-button:focus-visible { background: var(--ne-color-action-hover) !important; transform: translateY(-2px); }
body.nomad-english .elementor-button:focus-visible { outline: 0; box-shadow: var(--ne-focus-ring); }

.ne-public-section { overflow: hidden; }
.ne-public-section > .e-con-inner { position: relative; z-index: 2; }

.ne-home-hero {
    position: relative;
    min-height: min(760px,78vh) !important;
    padding: clamp(88px,10vw,150px) 30px !important;
    background: var(--ne-sand) !important;
}

.ne-home-hero::before {
    position: absolute;
    top: 50%;
    right: clamp(-180px,-4vw,-40px);
    width: clamp(360px,42vw,660px);
    aspect-ratio: 1;
    border: 1px solid color-mix(in srgb, var(--ne-color-action) 25%, transparent);
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%,rgba(255,255,255,.95),color-mix(in srgb, var(--ne-color-action-soft) 90%, transparent) 48%,color-mix(in srgb, var(--ne-color-action) 26%, transparent));
    box-shadow: inset 0 0 0 34px rgba(255,255,255,.28);
    content: "";
    transform: translateY(-50%);
}

.ne-home-hero::after {
    position: absolute;
    right: clamp(40px,8vw,140px);
    bottom: 55px;
    color: var(--ne-teal);
    content: "MÓW  •  ROZUMIEJ  •  RUSZAJ";
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .28em;
}

.ne-home-hero > .e-con-inner { align-items: flex-start !important; }
.ne-home-hero .elementor-widget { max-width: min(720px,62vw); }
.ne-home-hero h6,
.ne-subpage-hero h6 { color: var(--ne-teal) !important; font: 800 10px/1 var(--ne-font-sans) !important; letter-spacing: .18em; }
.ne-home-hero h1 { color: var(--ne-ink) !important; font: 400 clamp(54px,6.5vw,94px)/.94 var(--ne-font-display) !important; letter-spacing: -.055em; }
.ne-home-hero .elementor-widget-text-editor { max-width: 610px; color: var(--ne-muted) !important; font-size: 17px; }

.ne-home-benefits { padding: clamp(75px,9vw,125px) 30px !important; background: var(--ne-paper); }
.ne-home-benefits > .e-con-inner { gap: 45px !important; }
.ne-home-benefits > .e-con-inner > .elementor-widget-heading h2,
.ne-home-course h2,
.ne-home-about h2 { color: var(--ne-ink) !important; font: 400 clamp(38px,5vw,62px)/1 var(--ne-font-display) !important; letter-spacing: -.035em; }
.ne-home-benefit-grid { gap: 16px !important; }
.ne-home-benefit-card { position: relative; min-height: 250px; padding: 38px !important; border: 1px solid var(--ne-line); border-radius: var(--ne-radius-md); background: var(--ne-white) !important; box-shadow: var(--ne-shadow-sm); }
.ne-home-benefit-card::before { color: var(--ne-coral); content: "↗"; font: 400 28px/1 var(--ne-font-display); }
.ne-home-benefit-card h3 { color: var(--ne-ink); font: 400 25px/1.1 var(--ne-font-display); }
.ne-home-benefit-card p { color: var(--ne-muted); font-size: 13px; }

.ne-home-course { position: relative; padding: clamp(85px,10vw,145px) 30px !important; background: var(--ne-mint) !important; }
.ne-home-course::before { position: absolute; top: 30px; left: max(30px,calc((100vw - 1180px)/2)); color: rgba(21,49,56,.08); content: "01"; font: 400 clamp(120px,20vw,280px)/1 var(--ne-font-display); }
.ne-home-course > .e-con-inner { max-width: 820px !important; align-items: flex-start !important; margin-left: max(0px,calc((100% - 1180px)/2)); }
.ne-home-course .elementor-widget-text-editor { max-width: 660px; color: var(--ne-ink-soft); font-size: 16px; }

.ne-home-about { position: relative; padding: clamp(90px,11vw,150px) 30px !important; background: var(--ne-paper); }
.ne-home-about > .e-con-inner { max-width: 780px !important; margin-right: auto; margin-left: auto; align-items: center !important; text-align: center; }
.ne-home-about .elementor-widget-text-editor { color: var(--ne-muted); font-size: 16px; }

.ne-home-cta,
.ne-subpage-cta { padding: clamp(80px,10vw,130px) 30px !important; background: var(--ne-ink) !important; }
.ne-home-cta > .e-con-inner,
.ne-subpage-cta > .e-con-inner { align-items: center !important; text-align: center; }
.ne-home-cta h2,
.ne-subpage-cta h2 { max-width: 830px; color: var(--ne-white) !important; font: 400 clamp(40px,6vw,72px)/.98 var(--ne-font-display) !important; letter-spacing: -.04em; }
.ne-home-cta .elementor-widget-text-editor { color: rgba(255,255,255,.65) !important; }
.ne-home-cta .elementor-button,
.ne-subpage-cta .elementor-button { background: var(--ne-white) !important; color: var(--ne-ink) !important; }

.ne-subpage-hero { position: relative; padding: clamp(95px,11vw,160px) 30px clamp(70px,8vw,110px) !important; background: var(--ne-sand); }
.ne-subpage-hero::after { position: absolute; right: 8vw; bottom: -110px; width: 270px; height: 270px; border: 1px solid color-mix(in srgb, var(--ne-color-action) 20%, transparent); border-radius: 50%; background: color-mix(in srgb, var(--ne-color-action-soft) 55%, transparent); content: ""; }
.ne-subpage-hero h1 { max-width: 900px; color: var(--ne-ink); font: 400 clamp(55px,8vw,105px)/.92 var(--ne-font-display); letter-spacing: -.055em; }
.ne-subpage-hero .elementor-widget-text-editor { max-width: 680px; color: var(--ne-muted); font-size: 18px; }
.ne-story,
.ne-method,
.ne-faq-list,
.ne-contact { padding: clamp(75px,9vw,125px) 30px !important; }
.ne-story > .e-con-inner { display: grid !important; grid-template-columns: .8fr 1.2fr; gap: clamp(35px,7vw,100px); align-items: start; }
.ne-story h2,
.ne-method > .e-con-inner > .elementor-widget-heading h2 { color: var(--ne-ink); font: 400 clamp(38px,5vw,64px)/1 var(--ne-font-display); letter-spacing: -.04em; }
.ne-story .elementor-widget-text-editor { color: var(--ne-muted); font-size: 16px; }
.ne-method { background: var(--ne-mint); }
.ne-method > .e-con-inner { gap: 40px !important; }
.ne-method-grid,
.ne-faq-grid,
.ne-contact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.ne-method-grid article,
.ne-faq-grid article,
.ne-contact-grid article { padding: 30px; border: 1px solid var(--ne-line); border-radius: var(--ne-radius-md); background: var(--ne-white); }
.ne-method-grid span,
.ne-faq-grid span,
.ne-contact-grid span { color: var(--ne-coral); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.ne-method-grid h3,
.ne-faq-grid h2,
.ne-contact-grid h2 { margin: 20px 0 12px; color: var(--ne-ink); font: 400 24px/1.1 var(--ne-font-display); }
.ne-method-grid p,
.ne-faq-grid p,
.ne-contact-grid p { margin-bottom: 0; color: var(--ne-muted); font-size: 13px; }
.ne-faq-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.ne-faq-grid article { min-height: 240px; }
.ne-contact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.ne-contact-note { margin-top: 18px; padding: 25px 30px; border-radius: var(--ne-radius-md); background: var(--ne-ink); color: var(--ne-white); }
.ne-contact-note p { margin-bottom: 0; color: rgba(255,255,255,.68); }

body.nomad-english #site-footer { width: 100%; max-width: none; padding: 45px 30px; background: color-mix(in srgb, var(--ne-brand-dark) 88%, black); color: rgba(255,255,255,.62); }
body.nomad-english #site-footer .footer-inner { width: 100%; max-width: var(--ne-container); margin: 0 auto; }
body.nomad-english #site-footer a { color: var(--ne-white); }
body.nomad-english #site-footer .site-description { color: rgba(255,255,255,.62); font-size: 11px; }
body.nomad-english #site-footer .copyright { color: rgba(255,255,255,.42); font-size: 10px; text-transform: uppercase; }
body.nomad-english #site-footer .copyright { font-size: 0; }
body.nomad-english #site-footer .copyright::after { content: "WSZELKIE PRAWA ZASTRZEŻONE"; font-size: 10px; }

@media (max-width: 900px) {
    body.nomad-english #site-header .header-inner { min-height: 76px; }
    .ne-home-hero .elementor-widget { max-width: 78vw; }
    .ne-home-hero::before { right: -240px; opacity: .7; }
    .ne-home-hero::after { display: none; }
    .ne-story > .e-con-inner { display: flex !important; }
    .ne-method-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    body.admin-bar.nomad-english:not(.ne-account-app) #site-header { top: 0; }
    body.nomad-english:not(.ne-account-app) #site-header { padding: 0 18px; }
    body.nomad-english #site-header .site-description { display: none; }
    .ne-home-hero { min-height: 660px !important; padding-right: 20px !important; padding-left: 20px !important; }
    .ne-home-hero .elementor-widget { max-width: 100%; }
    .ne-home-hero h1 { font-size: 52px !important; }
    .ne-home-hero::before { top: auto; right: -90px; bottom: -220px; width: 420px; transform: none; }
    .ne-public-section { padding-right: 20px !important; padding-left: 20px !important; }
    .ne-subpage-hero h1 { font-size: 55px; }
    .ne-faq-grid,
    .ne-contact-grid { grid-template-columns: 1fr; }
    body.nomad-english #site-footer .footer-inner { display: grid; gap: 20px; }
}

/* Editorial shell: spacing and radii intentionally mirror the proven Ecomgo
 * rhythm, while colour and typography remain specific to Nomad English. */
body.nomad-english:not(.ne-account-app) #content {
    overflow: clip;
}

body.nomad-english:not(.ne-account-app) #site-header {
    width: calc(100% - (var(--ne-gutter) * 4));
    margin: calc(var(--ne-gutter) * 2) auto;
    padding-right: var(--ne-wrap-padding);
    padding-left: var(--ne-wrap-padding);
    border: 1px solid rgba(21,49,56,.08);
    border-radius: var(--ne-radius-xs);
    box-shadow: 0 8px 30px rgba(21,49,56,.045);
}

body.nomad-english #site-header .header-inner {
    max-width: var(--ne-container);
    min-height: 78px;
}

.ne-public-section {
    width: calc(100% - (var(--ne-gutter) * 4)) !important;
    margin-right: auto !important;
    margin-bottom: calc(var(--ne-gutter) * 2) !important;
    margin-left: auto !important;
    border-radius: var(--ne-radius-lg);
}

.ne-public-section > .e-con-inner {
    width: 100%;
    max-width: var(--ne-container) !important;
    margin-right: auto;
    margin-left: auto;
}

.ne-public-section .elementor-widget-heading + .elementor-widget-text-editor,
.ne-public-section .elementor-widget-text-editor + .elementor-widget-button,
.ne-public-section .elementor-widget-heading + .elementor-widget-button {
    margin-top: clamp(18px, 2.3vw, 30px);
}

.ne-public-section h1,
.ne-public-section h2,
.ne-public-section h3,
.ne-public-section p {
    text-wrap: pretty;
}

.ne-home-hero {
    min-height: min(720px, 76vh) !important;
    padding: var(--ne-section-padding) var(--ne-wrap-padding) !important;
}

.ne-home-hero > .e-con-inner {
    justify-content: center !important;
}

.ne-home-hero h6,
.ne-subpage-hero h6 {
    margin-bottom: 20px !important;
}

.ne-home-hero h1,
.ne-subpage-hero h1 {
    margin-bottom: 0 !important;
}

.ne-home-hero .elementor-widget-text-editor,
.ne-subpage-hero .elementor-widget-text-editor {
    line-height: 1.75;
}

.ne-home-benefits,
.ne-home-course,
.ne-home-about,
.ne-home-cta,
.ne-subpage-hero,
.ne-story,
.ne-method,
.ne-faq-list,
.ne-contact,
.ne-subpage-cta {
    padding: var(--ne-section-padding) var(--ne-wrap-padding) !important;
}

.ne-home-benefits > .e-con-inner,
.ne-method > .e-con-inner,
.ne-faq-list > .e-con-inner,
.ne-contact > .e-con-inner {
    gap: clamp(38px, 5vw, 72px) !important;
}

.ne-home-benefit-grid,
.ne-method-grid,
.ne-faq-grid,
.ne-contact-grid {
    gap: clamp(10px, 1vw, 18px) !important;
}

.ne-home-benefit-card,
.ne-method-grid article,
.ne-faq-grid article,
.ne-contact-grid article {
    padding: clamp(30px, 3.4vw, 52px) !important;
    border-radius: var(--ne-radius-md);
    box-shadow: none;
}

.ne-home-benefit-card h3,
.ne-method-grid h3,
.ne-faq-grid h2,
.ne-contact-grid h2 {
    margin-top: 28px;
    margin-bottom: 16px;
}

.ne-home-benefit-card p,
.ne-method-grid p,
.ne-faq-grid p,
.ne-contact-grid p {
    line-height: 1.72;
}

.ne-home-course::before {
    top: var(--ne-wrap-padding);
    left: var(--ne-wrap-padding);
}

.ne-home-course > .e-con-inner {
    display: grid !important;
    max-width: var(--ne-container) !important;
    grid-template-columns: minmax(0, .9fr) minmax(360px, .72fr);
    gap: clamp(44px, 7vw, 112px) !important;
    align-items: center !important;
    margin: 0 auto !important;
}

.ne-home-course-copy {
    position: relative;
    z-index: 2;
    align-items: flex-start !important;
}

.ne-home-course-copy .elementor-widget-text-editor {
    max-width: 690px;
    line-height: 1.75;
}

.ne-home-course-visual {
    min-height: 620px;
    overflow: hidden;
    border-radius: var(--ne-radius-md);
    box-shadow: var(--ne-shadow-lg);
}

.ne-home-course-visual,
.ne-home-course-visual .elementor-widget-image,
.ne-home-course-visual .elementor-widget-container,
.ne-home-course-visual img {
    width: 100%;
    height: 100%;
}

.ne-home-course-visual img {
    display: block;
    object-fit: cover;
}

.ne-home-about > .e-con-inner {
    gap: 0 !important;
}

.ne-home-about .elementor-widget-heading + .elementor-widget-text-editor {
    margin-top: clamp(24px, 3vw, 38px);
}

.ne-home-cta,
.ne-subpage-cta {
    background: var(--ne-ink) !important;
}

.ne-home-cta > .e-con-inner,
.ne-subpage-cta > .e-con-inner {
    gap: 0 !important;
}

.ne-subpage-hero::after {
    right: var(--ne-wrap-padding);
}

body.nomad-english #site-footer {
    width: calc(100% - (var(--ne-gutter) * 4));
    margin: 0 auto calc(var(--ne-gutter) * 2);
    padding: clamp(64px, 8vw, 110px) var(--ne-wrap-padding);
    border-radius: var(--ne-radius-lg);
}

body.nomad-english #site-footer .footer-inner {
    max-width: var(--ne-container);
}

/* Tutor LMS keeps responsibility for course mechanics. Brand tokens are
 * remapped here so plugin updates cannot restore Tutor's default blue skin. */
body.nomad-english {
    /* Legacy Tutor variables retained for compatibility with older views. */
    --tutor-color-primary: var(--ne-color-action);
    --tutor-color-primary-hover: var(--ne-color-action-hover);
    --tutor-color-primary-rgb: 47, 113, 104;

    /* Tutor 4.x brand actions. */
    --tutor-actions-brand-primary: var(--ne-color-action);
    --tutor-actions-brand-secondary: var(--ne-color-action-soft);
    --tutor-actions-brand-tertiary: color-mix(in srgb, var(--ne-color-action-soft) 72%, white);

    /* Tutor 4.x borders and buttons. */
    --tutor-border-brand: var(--ne-color-action);
    --tutor-border-brand-secondary: var(--ne-color-action-soft);
    --tutor-border-brand-tertiary: color-mix(in srgb, var(--ne-color-action) 38%, white);
    --tutor-button-primary: var(--ne-color-action);
    --tutor-button-primary-hover: var(--ne-color-action-hover);
    --tutor-button-primary-focused: var(--ne-color-action);
    --tutor-button-primary-disabled: color-mix(in srgb, var(--ne-color-action) 35%, white);
    --tutor-button-primary-soft: color-mix(in srgb, var(--ne-color-action-soft) 72%, white);
    --tutor-button-primary-soft-hover: var(--ne-color-action-soft);
    --tutor-button-primary-soft-focused: color-mix(in srgb, var(--ne-color-action-soft) 72%, white);

    /* Tutor 4.x icons and text. */
    --tutor-icon-brand: var(--ne-color-action);
    --tutor-icon-brand-hover: var(--ne-color-action-hover);
    --tutor-icon-brand-secondary: var(--ne-color-action-soft);
    --tutor-text-brand: var(--ne-color-action);
    --tutor-text-brand-hover: var(--ne-color-action-hover);
    --tutor-text-brand-secondary: color-mix(in srgb, var(--ne-color-action) 42%, white);

    /* Tutor 4.x surfaces, tabs and visual accents. */
    --tutor-surface-brand-dark: var(--ne-brand-dark);
    --tutor-surface-brand-primary: var(--ne-color-action);
    --tutor-surface-brand-primary-2: var(--ne-color-action-hover);
    --tutor-surface-brand-secondary: var(--ne-color-action-soft);
    --tutor-surface-brand-tertiary: color-mix(in srgb, var(--ne-color-action-soft) 42%, white);
    --tutor-surface-brand-quaternary: color-mix(in srgb, var(--ne-color-action-soft) 72%, white);
    --tutor-tab-l3: color-mix(in srgb, var(--ne-color-action-soft) 72%, white);
    --tutor-tab-l3-active: var(--ne-color-action-soft);
    --tutor-tab-l3-hover: color-mix(in srgb, var(--ne-color-action-soft) 78%, white);
    --tutor-tab-sidebar-l2-active: var(--ne-color-action-soft);
    --tutor-tab-sidebar-l4-active: var(--ne-color-action-soft);
    --tutor-visual-brand-1: var(--ne-color-action);
    --tutor-visual-brand-2: color-mix(in srgb, var(--ne-color-action) 38%, white);
    --tutor-visual-brand-3: var(--ne-color-action-soft);
}

body.nomad-english.single-courses .tutor-wrap,
body.nomad-english.post-type-archive-courses .tutor-wrap {
    width: calc(100% - (var(--ne-gutter) * 4));
    max-width: var(--ne-container);
    margin: calc(var(--ne-gutter) * 4) auto;
    padding: clamp(34px, 5vw, 72px);
    border: 1px solid var(--ne-line);
    border-radius: var(--ne-radius-lg);
    background: var(--ne-white);
}

body.nomad-english .tutor-btn,
body.nomad-english .tutor-button {
    min-height: var(--ne-control-height) !important;
    padding-right: var(--ne-control-padding) !important;
    padding-left: var(--ne-control-padding) !important;
    border-color: var(--ne-color-action) !important;
    border-radius: var(--ne-control-radius) !important;
    background: var(--ne-color-action) !important;
    color: var(--ne-white) !important;
    font-family: var(--ne-font-sans) !important;
    font-size: var(--ne-control-font-size) !important;
    font-weight: var(--ne-control-font-weight) !important;
    line-height: 1 !important;
    letter-spacing: var(--ne-control-letter-spacing) !important;
    text-transform: uppercase;
}

body.nomad-english .tutor-btn.tutor-btn-outline-primary {
    border-color: var(--ne-color-action) !important;
    background: var(--ne-color-surface) !important;
    color: var(--ne-color-action) !important;
}

body.nomad-english .tutor-btn.tutor-btn-ghost {
    border-color: transparent !important;
    background: transparent !important;
    color: var(--ne-color-action) !important;
}

body.nomad-english .tutor-btn:hover,
body.nomad-english .tutor-button:hover,
body.nomad-english .tutor-btn:focus-visible,
body.nomad-english .tutor-button:focus-visible { background: var(--ne-color-action-hover) !important; }
body.nomad-english .tutor-btn.tutor-btn-outline-primary:hover,
body.nomad-english .tutor-btn.tutor-btn-outline-primary:focus-visible { border-color: var(--ne-color-action-hover) !important; color: var(--ne-white) !important; }
body.nomad-english .tutor-btn.tutor-btn-ghost:hover,
body.nomad-english .tutor-btn.tutor-btn-ghost:focus-visible { border-color: transparent !important; background: var(--ne-color-action-soft) !important; color: var(--ne-color-action-hover) !important; }
body.nomad-english .tutor-btn:focus-visible,
body.nomad-english .tutor-button:focus-visible { outline: 0; box-shadow: var(--ne-focus-ring) !important; }

body.nomad-english .tutor-card,
body.nomad-english .tutor-course-details-widget,
body.nomad-english .tutor-course-details-tab {
    border-color: var(--ne-line) !important;
    border-radius: var(--ne-radius-sm) !important;
    box-shadow: none !important;
}

@media (max-width: 900px) {
    .ne-home-course > .e-con-inner {
        grid-template-columns: 1fr;
    }

    .ne-home-course-visual {
        min-height: 520px;
        max-width: 620px;
    }
}

@media (max-width: 600px) {
    body.nomad-english:not(.ne-account-app) #site-header,
    .ne-public-section,
    body.nomad-english #site-footer,
    body.nomad-english.single-courses .tutor-wrap,
    body.nomad-english.post-type-archive-courses .tutor-wrap {
        width: calc(100% - 16px) !important;
        margin-right: 8px !important;
        margin-left: 8px !important;
    }

    .ne-public-section {
        border-radius: var(--ne-radius-md);
    }

    .ne-home-hero,
    .ne-home-benefits,
    .ne-home-course,
    .ne-home-about,
    .ne-home-cta,
    .ne-subpage-hero,
    .ne-story,
    .ne-method,
    .ne-faq-list,
    .ne-contact,
    .ne-subpage-cta {
        padding: 58px 24px !important;
    }

    .ne-home-course-visual {
        min-height: 430px;
    }
}

/* Course sales-page system. Content remains editable in Elementor, while the
 * stable ne-sales-* classes own layout, typography and responsive behaviour. */
.ne-sales-section {
    padding: var(--ne-section-padding) var(--ne-wrap-padding) !important;
    background: var(--ne-color-page);
}

.ne-sales-section > .e-con-inner {
    gap: 0 !important;
}

.ne-sales-section h6 {
    margin: 0 0 var(--ne-space-5) !important;
    color: var(--ne-color-action) !important;
    font: var(--ne-weight-extra) 10px/1.2 var(--ne-font-sans) !important;
    letter-spacing: .18em;
}

.ne-sales-section h1,
.ne-sales-section h2 {
    max-width: 1050px;
    margin: 0 !important;
    color: var(--ne-color-text) !important;
    font-family: var(--ne-font-display) !important;
    font-weight: var(--ne-weight-regular) !important;
    letter-spacing: -.045em;
    text-wrap: balance;
}

.ne-sales-section h1 { font-size: clamp(52px, 7vw, 104px) !important; line-height: .94 !important; }
.ne-sales-section h2 { font-size: clamp(38px, 5vw, 68px) !important; line-height: 1 !important; }

.ne-sales-section > .e-con-inner > .elementor-widget-heading + .elementor-widget-text-editor,
.ne-sales-section > .e-con-inner > .elementor-widget-heading + .elementor-widget-button,
.ne-sales-section > .e-con-inner > .elementor-widget-text-editor + .elementor-widget-button {
    margin-top: clamp(24px, 3.4vw, 46px);
}

.ne-sales-section p,
.ne-sales-section li {
    color: var(--ne-color-text-soft);
    font-size: clamp(15px, 1.15vw, 18px);
    line-height: 1.72;
}

.ne-sales-section .elementor-widget-button {
    align-self: flex-start;
}

.ne-sales-hero {
    position: relative;
    min-height: min(820px, 84vh) !important;
    padding-top: clamp(100px, 12vw, 180px) !important;
    padding-bottom: clamp(86px, 10vw, 140px) !important;
    background: var(--ne-sand) !important;
}

.ne-sales-hero::before {
    position: absolute;
    top: clamp(40px, 7vw, 110px);
    right: clamp(-220px, -5vw, -50px);
    width: clamp(430px, 44vw, 720px);
    aspect-ratio: 1;
    border: 1px solid color-mix(in srgb, var(--ne-color-action) 20%, transparent);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 28%, rgba(255,255,255,.94), var(--ne-color-action-soft) 52%, color-mix(in srgb, var(--ne-color-action) 25%, white));
    box-shadow: inset 0 0 0 clamp(22px, 3vw, 48px) rgba(255,255,255,.28);
    content: "";
}

.ne-sales-hero > .e-con-inner { justify-content: center !important; }
.ne-sales-hero .elementor-widget { position: relative; z-index: 2; max-width: min(790px, 64vw); }
.ne-sales-hero .elementor-widget-text-editor { max-width: 660px; }
.ne-sales-hero .elementor-widget-button { margin-top: var(--ne-space-8) !important; }

.ne-sales-proofbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ne-space-3) var(--ne-space-6);
    margin-top: clamp(34px, 5vw, 64px);
    padding-top: var(--ne-space-6);
    border-top: 1px solid color-mix(in srgb, var(--ne-color-text) 14%, transparent);
}

.ne-sales-proofbar span {
    color: var(--ne-color-text-soft);
    font-size: 12px;
    font-weight: var(--ne-weight-medium);
}

.ne-sales-grid {
    display: grid;
    gap: clamp(12px, 1.2vw, 20px);
}

.ne-sales-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ne-sales-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ne-sales-grid article,
.ne-sales-grid blockquote {
    min-width: 0;
    margin: 0;
    padding: clamp(28px, 3.4vw, 52px);
    border: 1px solid var(--ne-color-border);
    border-radius: var(--ne-radius-md);
    background: var(--ne-color-surface);
}

.ne-sales-grid article > span {
    color: var(--ne-color-accent);
    font-size: 10px;
    font-weight: var(--ne-weight-extra);
    letter-spacing: .15em;
}

.ne-sales-grid h3,
.ne-sales-modules h3 {
    margin: var(--ne-space-6) 0 var(--ne-space-4);
    color: var(--ne-color-text);
    font: var(--ne-weight-regular) clamp(24px, 2vw, 32px)/1.12 var(--ne-font-display);
    letter-spacing: -.025em;
}

.ne-sales-grid p:last-child,
.ne-sales-grid blockquote p:last-child { margin-bottom: 0; }

.ne-sales-grid blockquote p {
    color: var(--ne-color-text);
    font: var(--ne-weight-regular) clamp(22px, 2vw, 30px)/1.35 var(--ne-font-display);
}

.ne-sales-grid blockquote footer {
    margin-top: var(--ne-space-6);
    color: var(--ne-color-text-muted);
    font-size: 11px;
    font-weight: var(--ne-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ne-sales-problem,
.ne-sales-included,
.ne-sales-process,
.ne-sales-faq { background: var(--ne-color-page) !important; }

.ne-sales-outcomes,
.ne-sales-method,
.ne-sales-testimonials { background: var(--ne-color-action-soft) !important; }

.ne-sales-checklist {
    display: grid;
    max-width: 1080px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ne-space-4);
}

.ne-sales-checklist p {
    margin: 0;
    padding: var(--ne-space-6);
    border: 1px solid color-mix(in srgb, var(--ne-color-action) 20%, transparent);
    border-radius: var(--ne-radius-sm);
    background: color-mix(in srgb, var(--ne-color-surface) 72%, transparent);
}

.ne-sales-audience { background: var(--ne-color-text) !important; }
.ne-sales-audience h2 { color: var(--ne-color-surface) !important; }

.ne-sales-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(12px, 1.2vw, 20px);
}

.ne-sales-split article {
    padding: clamp(30px, 4vw, 60px);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: var(--ne-radius-md);
    background: rgba(255,255,255,.055);
}

.ne-sales-split span {
    color: var(--ne-color-accent);
    font-size: 10px;
    font-weight: var(--ne-weight-extra);
    letter-spacing: .14em;
}

.ne-sales-split p { color: rgba(255,255,255,.76); }

.ne-sales-program { position: relative; background: var(--ne-sand) !important; }
.ne-sales-anchor { position: absolute; top: -110px; }

.ne-sales-modules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--ne-color-border-strong);
}

.ne-sales-modules article {
    padding: clamp(32px, 4vw, 64px) clamp(16px, 3vw, 48px);
    border-right: 1px solid var(--ne-color-border-strong);
    border-bottom: 1px solid var(--ne-color-border-strong);
}

.ne-sales-modules article:nth-child(2n) { border-right: 0; }
.ne-sales-modules article > span { color: var(--ne-color-action); font-size: 10px; font-weight: var(--ne-weight-extra); letter-spacing: .15em; }
.ne-sales-modules ul { margin: var(--ne-space-6) 0 0; padding-left: var(--ne-space-5); }

.ne-sales-method-copy { display: grid; max-width: 1120px; grid-template-columns: 1fr .9fr; gap: clamp(32px, 6vw, 90px); align-items: start; }
.ne-sales-steps { display: grid; gap: var(--ne-space-3); }
.ne-sales-steps span { padding: var(--ne-space-5) var(--ne-space-6); border-radius: var(--ne-radius-sm); background: rgba(255,255,255,.7); color: var(--ne-color-text); font-size: 12px; font-weight: var(--ne-weight-bold); letter-spacing: .06em; }

.ne-sales-bio { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, 1fr); gap: clamp(36px, 7vw, 112px); align-items: center; }
.ne-sales-photo-placeholder { display: grid; min-height: 560px; place-items: center; border: 1px dashed var(--ne-color-border-strong); border-radius: var(--ne-radius-md); background: var(--ne-sand); color: var(--ne-color-text-muted); font-size: 10px; font-weight: var(--ne-weight-extra); letter-spacing: .16em; }

.ne-sales-offer {
    background: var(--ne-color-action-soft) !important;
}

.ne-sales-offer > .e-con-inner {
    max-width: 1080px !important;
}

.ne-sales-offer-card {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(30px, 6vw, 90px);
    padding: clamp(34px, 5vw, 72px);
    border: 1px solid color-mix(in srgb, var(--ne-color-action) 22%, transparent);
    border-radius: var(--ne-radius-md);
    background: var(--ne-color-surface);
}

.ne-sales-price { margin: 0; color: var(--ne-color-text) !important; font: var(--ne-weight-regular) clamp(54px, 7vw, 96px)/.9 var(--ne-font-display) !important; letter-spacing: -.05em; }
.ne-sales-price small { font: var(--ne-weight-extra) 12px/1 var(--ne-font-sans); letter-spacing: .1em; }
.ne-sales-offer-card ul { margin: 0; padding: 0; list-style: none; }
.ne-sales-offer-card li { padding: var(--ne-space-3) 0; border-bottom: 1px solid var(--ne-color-border); }
.ne-sales-note { max-width: 720px; color: var(--ne-color-text-muted) !important; font-size: 12px !important; }

.ne-sales-faq-list { max-width: 1040px; }
.ne-sales-faq-list details { border-top: 1px solid var(--ne-color-border-strong); }
.ne-sales-faq-list details:last-child { border-bottom: 1px solid var(--ne-color-border-strong); }
.ne-sales-faq-list summary { position: relative; padding: var(--ne-space-6) 52px var(--ne-space-6) 0; color: var(--ne-color-text); cursor: pointer; font-size: clamp(18px, 1.6vw, 24px); font-weight: var(--ne-weight-medium); list-style: none; }
.ne-sales-faq-list summary::-webkit-details-marker { display: none; }
.ne-sales-faq-list summary::after { position: absolute; top: 50%; right: var(--ne-space-2); content: "+"; color: var(--ne-color-action); font: var(--ne-weight-regular) 30px/1 var(--ne-font-display); transform: translateY(-50%); }
.ne-sales-faq-list details[open] summary::after { content: "−"; }
.ne-sales-faq-list details p { max-width: 800px; margin: 0; padding: 0 52px var(--ne-space-6) 0; }

.ne-sales-final { background: var(--ne-color-text) !important; }
.ne-sales-final > .e-con-inner { align-items: center !important; text-align: center; }
.ne-sales-final h2 { color: var(--ne-color-surface) !important; }
.ne-sales-final p { color: rgba(255,255,255,.7); }
.ne-sales-final .elementor-widget-button { align-self: center; }
.ne-sales-final .elementor-button { background: var(--ne-color-surface) !important; color: var(--ne-color-text) !important; }

@media (max-width: 900px) {
    .ne-sales-grid--3,
    .ne-sales-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ne-sales-hero .elementor-widget { max-width: 82vw; }
    .ne-sales-hero::before { right: -340px; opacity: .72; }
    .ne-sales-method-copy,
    .ne-sales-bio { grid-template-columns: 1fr; }
    .ne-sales-photo-placeholder { min-height: 440px; max-width: 620px; }
}

@media (max-width: 600px) {
    .ne-sales-section { padding: 58px 24px !important; }
    .ne-sales-section h1 { font-size: 49px !important; }
    .ne-sales-section h2 { font-size: 39px !important; }
    .ne-sales-hero { min-height: 680px !important; padding-top: 78px !important; }
    .ne-sales-hero .elementor-widget { max-width: 100%; }
    .ne-sales-hero::before { top: auto; right: -150px; bottom: -210px; width: 430px; }
    .ne-sales-proofbar { display: grid; }
    .ne-sales-grid--3,
    .ne-sales-grid--4,
    .ne-sales-checklist,
    .ne-sales-split,
    .ne-sales-modules,
    .ne-sales-offer-card { grid-template-columns: 1fr; }
    .ne-sales-modules article { border-right: 0; }
    .ne-sales-photo-placeholder { min-height: 360px; }
}
