/*
Theme Name: Flatsome Child
Description: This is a child theme for Flatsome Theme
Author: UX Themes
Template: flatsome
Version: 3.0
*/

/*************** ADD CUSTOM CSS HERE.   ***************/

.copyright-footer{
	line-height: 50px;
}
/* =========================================================
   FLATSOME HOMEPAGE BASE CSS — V7.2 FINAL
   Phương án C — Minimal GMC (5-6 sections / homepage) +
   Layer 9 Test Mode showcase support.

   Setup: paste 1 LẦN vào child theme style.css. Mỗi shop chỉ
   cần đổi Primary Color trong CMC Settings → plugin tự inject
   <style>:root{--nt-primary:#xxxxxx;}</style> vào <head> qua
   CMC_Public::print_root_vars() — KHÔNG sửa file CSS này.

   Token override per-instance: bọc bất kỳ block nào trong
   <div class="nt-home" style="--nt-primary: #xxxxxx;"> để test
   nhiều màu trên cùng 1 page (Token Swatch Test S11).
   ========================================================= */


/* ─────────────────────────────────────────────────────────
   1. THEME VARIABLES
   ───────────────────────────────────────────────────────── */
:root {
  --nt-primary:  #1a1a1a;
  --nt-radius:   24px;
  --nt-dark:     #1a1a1a;
  --nt-muted:    #555;
  --nt-soft:     #faf6ef;
  --nt-fallback: #e8ecef;
}


/* ─────────────────────────────────────────────────────────
   2. BROKEN-IMAGE GUARD
   ───────────────────────────────────────────────────────── */
.nt-hero-media img,
.nt-story-media img,
.nt-cta-media img,
.nt-intent-card img,
.nt-mosaic img {
  text-indent: -9999px;
  color: transparent;
  font-size: 0;
}


/* ─────────────────────────────────────────────────────────
   3. HERO (Split + FullBleed)
   ───────────────────────────────────────────────────────── */
.nt-hero-slide .section-content { min-height: 620px; display: flex; align-items: center; }
.nt-hero-slide .row { width: 100%; }

.nt-hero-media {
  aspect-ratio: 4/3;
  width: 100%;
  overflow: hidden;
  border-radius: var(--nt-radius);
  background: var(--nt-fallback) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 300'><rect width='400' height='300' fill='%23e8ecef'/><text x='200' y='155' text-anchor='middle' fill='%23b0b8c0' font-family='sans-serif' font-size='16'>Image</text></svg>") center/cover no-repeat;
}
.nt-hero-media.is-portrait { aspect-ratio: 3/4; }
.nt-hero-media.on-dark    { background: var(--nt-dark); box-shadow: 0 0 0 1px rgba(255,255,255,.06); }
.nt-hero-media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 35%;
  display: block;
}


/* ─────────────────────────────────────────────────────────
   4. BRAND STORY
   ───────────────────────────────────────────────────────── */
.nt-story-media {
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: var(--nt-radius);
  background: var(--nt-fallback);
}
.nt-story-media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
}


/* ─────────────────────────────────────────────────────────
   5. INTENT 4 CARDS
   ───────────────────────────────────────────────────────── */
.nt-intent-card {
  position: relative;
  display: block;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: var(--nt-radius);
  background: var(--nt-fallback);
}
.nt-intent-card img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform .5s ease;
}
.nt-intent-card:hover img { transform: scale(1.04); }
.nt-intent-card::after {
  content: "";
  position: absolute; inset: auto 0 0 0; height: 50%;
  background: linear-gradient(to top, rgba(0,0,0,.55), transparent);
  pointer-events: none;
}
.nt-intent-card .nt-intent-label {
  position: absolute;
  left: 20px; bottom: 20px;
  color: #fff;
  font-weight: 700;
  font-size: 1.1em;
  letter-spacing: .3px;
  z-index: 1;
}


/* ─────────────────────────────────────────────────────────
   6. MOOD MOSAIC (5 tiles, 3×2 grid) + wpautop guard
   ───────────────────────────────────────────────────────── */
.nt-mosaic {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 14px;
  aspect-ratio: 16/9;
}
.nt-mosaic > br,
.nt-mosaic > p,
.nt-mosaic > *:not(a) {
  display: none !important;
}
.nt-mosaic > a {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--nt-radius);
  background: var(--nt-fallback);
  min-height: 180px;
}
.nt-mosaic > a:nth-of-type(1) { grid-row: span 2; }
.nt-mosaic img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform .5s ease;
}
.nt-mosaic a:hover img { transform: scale(1.04); }
.nt-mosaic > a::after {
  content: "";
  position: absolute; inset: auto 0 0 0; height: 45%;
  background: linear-gradient(to top, rgba(0,0,0,.5), transparent);
  pointer-events: none;
}
.nt-mosaic .tile-label {
  position: absolute;
  left: 20px; bottom: 20px;
  color: #fff;
  font-weight: 700;
  font-size: 1.2em;
  letter-spacing: .3px;
  z-index: 1;
}
.nt-mosaic .tile-label small {
  display: block;
  font-weight: 500;
  font-size: .75em;
  opacity: .9;
  margin-top: 4px;
}
.nt-mosaic:has(> a:only-of-type),
.nt-mosaic:not(:has(> a:nth-of-type(5))) {
  display: block;
  aspect-ratio: auto;
}
.nt-mosaic:has(> a:only-of-type) > a,
.nt-mosaic:not(:has(> a:nth-of-type(5))) > a {
  grid-row: auto;
  aspect-ratio: 4/3;
  width: 100%;
  margin-bottom: 14px;
}


/* ─────────────────────────────────────────────────────────
   7. SECTION HEADING
   ───────────────────────────────────────────────────────── */
.nt-feat-heading {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 30px;
}
.nt-feat-heading h2 { margin-bottom: 10px; }
.nt-feat-heading p {
  color: var(--nt-muted);
  font-size: 1.02em;
  line-height: 1.7;
}


/* ─────────────────────────────────────────────────────────
   8. TESTIMONIAL CARD
   ───────────────────────────────────────────────────────── */
.nt-testimonial-card {
  background: var(--nt-soft);
  border-radius: var(--nt-radius);
  padding: 28px 26px;
  height: 100%;
  border: 1px solid color-mix(in srgb, var(--nt-primary) 15%, transparent);
}
.nt-testimonial-card .stars {
  color: var(--nt-primary);
  letter-spacing: 2px;
  font-size: 1em;
  margin-bottom: 14px;
}
.nt-testimonial-card blockquote {
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  color: var(--nt-dark);
  font-size: 1.02em;
  line-height: 1.7;
  font-style: normal;
}
.nt-testimonial-card .author {
  color: var(--nt-muted);
  font-size: .88em;
  letter-spacing: .3px;
  text-transform: uppercase;
}


/* ─────────────────────────────────────────────────────────
   9. CTA SPLIT
   ───────────────────────────────────────────────────────── */
.nt-cta-media {
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: var(--nt-radius);
  background: var(--nt-fallback);
}
.nt-cta-media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
}


/* ─────────────────────────────────────────────────────────
   10. CTA FLAT
   ───────────────────────────────────────────────────────── */
.nt-section-primary {
  background-color: var(--nt-primary);
  color: var(--nt-dark);
}
.nt-section-primary h1,
.nt-section-primary h2,
.nt-section-primary h3,
.nt-section-primary p { color: var(--nt-dark); }


/* ─────────────────────────────────────────────────────────
   11. DARK SECTION HELPER
   ───────────────────────────────────────────────────────── */
.nt-section-dark {
  background-color: var(--nt-dark);
  color: #f3efe7;
}
.nt-section-dark h1,
.nt-section-dark h2,
.nt-section-dark h3 { color: #fff; }
.nt-section-dark p { color: #cfcfcf; }


/* ─────────────────────────────────────────────────────────
   12. MOBILE BREAKPOINT
   ───────────────────────────────────────────────────────── */
@media (max-width: 849px) {
  .nt-hero-slide .section-content { min-height: 480px; }
  .nt-mosaic {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(5, 180px);
    aspect-ratio: auto;
  }
  .nt-mosaic > a:nth-of-type(1) { grid-column: span 2; grid-row: span 1; }
  .nt-mosaic > a:nth-of-type(5) { grid-column: span 2; }
  .nt-intent-card { aspect-ratio: 4/3; }
}


/* ─────────────────────────────────────────────────────────
   13. UX_PRODUCTS GRID FALLBACK (V7.4 FIX)

   Flatsome [ux_products] mặc định render slider mode (Flickity).
   Khi Flickity JS không init xong (defer plugin / cache / JS
   conflict), slider giữ nguyên DOM nhưng KHÔNG có class
   .flickity-enabled → tất cả product cell đứng nguyên width
   100% → mỗi product 1 dòng full-width.

   Rule này force grid khi Flickity chưa init: dùng flex-wrap,
   chia % theo class large-columns-N do Flatsome inject. Khi
   Flickity init xong (hoặc shortcode có type="row"), class
   .flickity-enabled xuất hiện → rule tự nhường, không xung đột.
   ───────────────────────────────────────────────────────── */
.row-slider:not(.flickity-enabled) {
  display: flex !important;
  flex-wrap: wrap;
  margin-left: -7px;
  margin-right: -7px;
}
.row-slider:not(.flickity-enabled) > .col {
  flex: 0 0 auto;
  padding-left: 7px;
  padding-right: 7px;
  width: 25%;                         /* default fallback */
}

/* Map theo class column Flatsome inject */
.row-slider:not(.flickity-enabled).large-columns-2 > .col { width: 50%; }
.row-slider:not(.flickity-enabled).large-columns-3 > .col { width: 33.3333%; }
.row-slider:not(.flickity-enabled).large-columns-4 > .col { width: 25%; }
.row-slider:not(.flickity-enabled).large-columns-5 > .col { width: 20%; }
.row-slider:not(.flickity-enabled).large-columns-6 > .col { width: 16.6667%; }

@media (max-width: 849px) {
  .row-slider:not(.flickity-enabled).medium-columns-2 > .col { width: 50%; }
  .row-slider:not(.flickity-enabled).medium-columns-3 > .col { width: 33.3333%; }
  .row-slider:not(.flickity-enabled).medium-columns-4 > .col { width: 25%; }
}
@media (max-width: 549px) {
  .row-slider:not(.flickity-enabled).small-columns-1 > .col { width: 100%; }
  .row-slider:not(.flickity-enabled).small-columns-2 > .col { width: 50%; }
  .row-slider:not(.flickity-enabled).small-columns-3 > .col { width: 33.3333%; }
}

/* Ẩn Flickity slider buttons khi chưa init (tránh hiện rỗng) */
.row-slider:not(.flickity-enabled) .flickity-prev-next-button,
.row-slider:not(.flickity-enabled) .flickity-page-dots {
  display: none !important;
}

.nt-l1-hero, .nt-l1-story, .nt-l1-featured, .nt-l1-testimonials, .nt-l1-cta
.nt-l1-hero-media, .nt-l1-story-media (aspect-ratio + object-cover)
.nt-l1-h1, .nt-l1-h2, .nt-l1-lead
.nt-l1-cta-row (button group)
.nt-l1-bullets (UL with checkmark/dot)
.nt-l1-testimonial-card .nt-l1-quote .nt-l1-author
.nt-l1-cta-headline .nt-l1-cta-para .nt-l1-cta-wrap (centered, contrast bg)
.nt-eyebrow (kicker label, shared)
.nt-hero-media .nt-story-media .nt-testimonial-card (already in V7 base CSS — reuse)

/* ===========================================================
   CMC HOMEPAGE SKELETONS — base + L1..L8 (V2: nt-primary tokens)
   Paste once into child theme style.css.
   Plugin auto-injects --nt-primary, --nt-primary-rgb, --nt-primary-soft,
   --nt-primary-dark on <html> per Settings → Primary Color.
   =========================================================== */

/* ---------- Shared base ---------- */
.cmc-section { box-sizing: border-box; }
.cmc-section * { box-sizing: border-box; }

.nt-eyebrow {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: 12px;
    font-weight: 600;
    color: #888;
    margin: 0 0 12px;
}

.nt-hero-media,
.nt-story-media,
.nt-cta-media {
    overflow: hidden;
    border-radius: 6px;
    background: var(--nt-primary-soft, #f1f1f1);
}
.nt-hero-media { aspect-ratio: 4 / 3; }
.nt-hero-media.is-portrait { aspect-ratio: 3 / 4; }
.nt-hero-media.on-dark { background: #1a1a1a; }
.nt-story-media { aspect-ratio: 4 / 3; }
.nt-cta-media   { aspect-ratio: 3 / 2; }

.nt-hero-media img,
.nt-story-media img,
.nt-cta-media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}

/* .nt-feat-heading { text-align: center; margin: 0 0 28px; } */
.nt-feat-heading { text-align: center;}
.nt-feat-heading h2 { margin: 0; }

/* Mosaic (L2, L7) */
.nt-mosaic {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    gap: 8px;
    aspect-ratio: 3 / 2;
}
.nt-mosaic > br, .nt-mosaic > p { display: none !important; }
.nt-mosaic > a {
    position: relative; display: block; overflow: hidden;
    border-radius: 4px; background: var(--nt-primary-soft, #f1f1f1);
}
.nt-mosaic > a:first-child { grid-row: span 2; }
.nt-mosaic > a > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nt-mosaic .tile-label {
    position: absolute; left: 12px; bottom: 12px;
    color: #fff; font-weight: 600; font-size: 14px;
    text-shadow: 0 1px 4px rgba(0,0,0,.5); letter-spacing: .04em;
}
.nt-mosaic .tile-label small {
    display: block; font-size: 11px; font-weight: 400; opacity: .85;
    margin-top: 2px; letter-spacing: .12em; text-transform: uppercase;
}

/* Intent card (L4, L8) */
.nt-intent-card {
    position: relative; display: block; overflow: hidden;
    aspect-ratio: 1 / 1; border-radius: 4px;
    background: var(--nt-primary-soft, #f1f1f1);
}
.nt-intent-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nt-intent-card .nt-intent-label {
    position: absolute; inset: auto 12px 12px 12px;
    color: #fff; font-weight: 600; font-size: 15px;
    text-shadow: 0 1px 4px rgba(0,0,0,.5);
}

/* Testimonial card */
.nt-testimonial-card {
    background: #fafafa;
    border: 1px solid #ececec;
    border-radius: 6px;
    padding: 22px 20px;
    height: 100%;
    transition: border-color .2s;
}
.nt-testimonial-card:hover { border-color: rgba(var(--nt-primary-rgb, 46,196,182), .35); }
.nt-testimonial-card blockquote,
.nt-testimonial-card p {
    margin: 0 0 12px; font-style: italic; color: #333;
    font-size: 15px; line-height: 1.6;
}

/* ---------- L1 — Editorial Split ---------- */
.nt-l1-h1 { font-size: clamp(28px, 4vw, 44px); line-height: 1.15; margin: 0 0 16px; }
.nt-l1-h2 { font-size: clamp(22px, 3vw, 32px); margin: 0 0 14px; }
.nt-l1-lead { font-size: 17px; color: #555; margin: 0 0 22px; }
.nt-l1-cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
.nt-l1-bullets { padding-left: 0; list-style: none; margin: 14px 0 0; }
.nt-l1-bullets li { padding: 6px 0 6px 22px; position: relative; color: #333; }
.nt-l1-bullets li::before { content: "✓"; position: absolute; left: 0; color: var(--nt-primary, #2ec4b6); font-weight: 700; }
.nt-l1-author { display: block; color: #888; font-size: 13px; font-weight: 600; }
.nt-l1-cta { background: var(--nt-primary, #2ec4b6); color: #fff; }
.nt-l1-cta-wrap { text-align: center; max-width: 720px; margin: 0 auto; }
.nt-l1-cta-headline { color: #fff; margin: 0 0 12px; font-size: clamp(22px, 3vw, 32px); }
.nt-l1-cta-para { color: rgba(255,255,255,.9); margin: 0 0 22px; }

/* ---------- L2 — Mosaic-Led Dark ---------- */
.nt-l2-hero { background: #1a1a1a; color: #fff; }
.nt-l2-hero .nt-eyebrow { color: rgba(255,255,255,.7); }
.nt-l2-h1 { color: #fff; font-size: clamp(32px, 5vw, 56px); line-height: 1.1; margin: 0 0 18px; }
.nt-l2-lead { color: rgba(255,255,255,.85); font-size: 17px; margin: 0 0 24px; }
.nt-l2-h2 { font-size: clamp(22px, 3vw, 32px); margin: 0 0 14px; }
.nt-l2-bullets { padding-left: 0; list-style: none; margin: 14px 0 0; }
.nt-l2-bullets li { padding: 6px 0 6px 22px; position: relative; }
.nt-l2-bullets li::before { content: "—"; position: absolute; left: 0; color: var(--nt-primary, #2ec4b6); }
.nt-l2-author { display: block; color: #888; font-size: 13px; font-weight: 600; }
.nt-l2-cta { background: #1a1a1a; color: #fff; }
.nt-l2-cta-wrap { text-align: center; max-width: 720px; margin: 0 auto; }
.nt-l2-cta-headline { color: #fff; margin: 0 0 12px; }
.nt-l2-cta-para { color: rgba(255,255,255,.85); margin: 0 0 22px; }

/* ---------- L3 — Story-First Editorial ---------- */
.nt-l3-intro { background: var(--nt-primary-soft, #fafaf7); }
.nt-l3-h1 { font-size: clamp(32px, 5vw, 52px); line-height: 1.1; margin: 0 0 18px; }
.nt-l3-h2 { font-size: clamp(22px, 3vw, 32px); margin: 0 0 14px; }
.nt-l3-lead { font-size: 18px; color: #555; max-width: 720px; margin: 0 auto 26px; }
.nt-l3-cta-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.nt-l3-bullets { padding-left: 0; list-style: none; margin: 14px 0 0; }
.nt-l3-bullets li { padding: 6px 0 6px 22px; position: relative; }
.nt-l3-bullets li::before { content: "→"; position: absolute; left: 0; color: var(--nt-primary, #2ec4b6); }
.nt-l3-author { display: block; color: #888; font-size: 13px; font-weight: 600; }
.nt-l3-cta { background: var(--nt-primary, #2ec4b6); color: #fff; }
.nt-l3-cta-wrap { padding: 20px; }
.nt-l3-cta-headline { color: #fff; margin: 0 0 12px; }
.nt-l3-cta-para { color: rgba(255,255,255,.9); margin: 0 0 22px; }

/* ---------- L4 — Intent-Cards Navigator ---------- */
.nt-l4-hero { background: var(--nt-primary-soft, #f6f5f1); text-align: center; }
.nt-l4-h1 { font-size: clamp(32px, 5vw, 56px); line-height: 1.1; margin: 0 0 18px; }
.nt-l4-h2 { font-size: clamp(22px, 3vw, 32px); margin: 0 0 14px; }
.nt-l4-lead { font-size: 17px; color: #555; max-width: 640px; margin: 0 auto 24px; }
.nt-l4-cta-row { display: flex; gap: 12px; justify-content: center; }
.nt-l4-intent-card { aspect-ratio: 4 / 5; }
.nt-l4-bullets { padding-left: 0; list-style: none; margin: 14px 0 0; }
.nt-l4-bullets li { padding: 6px 0 6px 22px; position: relative; }
.nt-l4-bullets li::before { content: "•"; position: absolute; left: 4px; color: var(--nt-primary, #2ec4b6); font-weight: 700; }
.nt-l4-quote-section { background: var(--nt-primary-soft, #fafaf7); }
.nt-l4-quote-large {
    font-size: clamp(22px, 3vw, 32px); line-height: 1.3;
    font-style: italic; color: #222; margin: 0 0 18px;
    border: none; padding: 0;
}
.nt-l4-quote-author { display: block; color: #888; font-weight: 600; }
.nt-l4-cta { background: #1a1a1a; color: #fff; text-align: center; }
.nt-l4-cta-headline { color: #fff; margin: 0 0 12px; }
.nt-l4-cta-para { color: rgba(255,255,255,.85); margin: 0 0 22px; }

/* ---------- L5 — Magazine Stack ---------- */
.nt-l5-hero { background: #1a1a1a; color: #fff; }
.nt-l5-h1 { color: #fff; font-size: clamp(32px, 5vw, 56px); line-height: 1.1; margin: 0 0 18px; }
.nt-l5-lead { color: rgba(255,255,255,.85); font-size: 17px; margin: 0 0 24px; }
.nt-l5-h2 { font-size: clamp(22px, 3vw, 32px); margin: 0 0 14px; }
.nt-l5-process { background: var(--nt-primary-soft, #fafaf7); }
.nt-l5-process-lead { color: #666; max-width: 640px; margin: 0 auto 32px; text-align: center; }
.nt-l5-step { text-align: center; padding: 16px 8px; }
.nt-l5-step-num {
    display: inline-block; font-size: 28px; font-weight: 700;
    color: var(--nt-primary, #2ec4b6);
    letter-spacing: .04em; margin: 0 0 10px;
}
.nt-l5-step-label { font-size: 16px; margin: 0 0 8px; color: #222; }
.nt-l5-step-desc { font-size: 13px; color: #666; margin: 0; line-height: 1.5; }
.nt-l5-author { display: block; color: #888; font-size: 13px; font-weight: 600; }
.nt-l5-cta { background: var(--nt-primary, #2ec4b6); color: #fff; }
.nt-l5-cta-wrap { padding: 20px; }
.nt-l5-cta-headline { color: #fff; margin: 0 0 12px; }
.nt-l5-cta-para { color: rgba(255,255,255,.9); margin: 0 0 22px; }

.nt-l5-step-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 8px;
}
@media (max-width: 1024px) {
    .nt-l5-step-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
    .nt-l5-step-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- L6 — Compact Pro ---------- */
.nt-l6-h1 { font-size: clamp(30px, 4.5vw, 48px); line-height: 1.15; margin: 0 0 16px; }
.nt-l6-h2 { font-size: clamp(22px, 3vw, 32px); margin: 0 0 14px; }
.nt-l6-lead { font-size: 17px; color: #555; margin: 0 0 22px; }
.nt-l6-cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
.nt-l6-story { background: var(--nt-primary-soft, #fafaf7); text-align: center; }
.nt-l6-story-lead { font-size: 17px; color: #444; max-width: 720px; margin: 0 auto; line-height: 1.7; }
.nt-l6-cta { background: #1a1a1a; color: #fff; text-align: center; }
.nt-l6-cta-headline { color: #fff; margin: 0 0 12px; }
.nt-l6-cta-para { color: rgba(255,255,255,.85); margin: 0 0 22px; }

/* ---------- L7 — Mosaic Mid + Quote Stack ---------- */
.nt-l7-h1 { font-size: clamp(28px, 4vw, 44px); line-height: 1.15; margin: 0 0 16px; }
.nt-l7-h2 { font-size: clamp(22px, 3vw, 32px); margin: 0 0 14px; }
.nt-l7-lead { font-size: 17px; color: #555; margin: 0 0 22px; }
.nt-l7-cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
.nt-l7-bullets { padding-left: 0; list-style: none; margin: 14px 0 0; }
.nt-l7-bullets li { padding: 6px 0 6px 22px; position: relative; }
.nt-l7-bullets li::before { content: "✓"; position: absolute; left: 0; color: var(--nt-primary, #2ec4b6); }
.nt-l7-test-stack { display: flex; flex-direction: column; gap: 28px; padding: 20px 0; }
.nt-l7-test-row { padding: 22px 0; border-top: 1px solid #ececec; }
.nt-l7-test-row:first-child { border-top: none; padding-top: 0; }
.nt-l7-test-row.is-alt { text-align: right; }
.nt-l7-quote {
    font-size: 18px; line-height: 1.6; font-style: italic;
    color: #333; margin: 0 0 8px; border: none; padding: 0;
}
.nt-l7-author { color: #888; font-weight: 600; font-size: 13px; }
.nt-l7-cta { background: #1a1a1a; color: #fff; text-align: center; }
.nt-l7-cta-headline { color: #fff; margin: 0 0 12px; }
.nt-l7-cta-para { color: rgba(255,255,255,.85); margin: 0 0 22px; }

/* ---------- L8 — Editorial Plus ---------- */
.nt-l8-h1 { font-size: clamp(28px, 4vw, 44px); line-height: 1.15; margin: 0 0 16px; }
.nt-l8-h2 { font-size: clamp(22px, 3vw, 32px); margin: 0 0 14px; }
.nt-l8-lead { font-size: 17px; color: #555; margin: 0 0 22px; }
.nt-l8-cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
.nt-l8-values { background: var(--nt-primary-soft, #fafaf7); }
.nt-l8-value-card {
    text-align: center; padding: 18px 14px;
    border-radius: 6px;
    background: rgba(var(--nt-primary-rgb, 46,196,182), .04);
}
.nt-l8-value-glyph {
    display: inline-block; font-size: 28px;
    color: var(--nt-primary, #2ec4b6); margin: 0 0 10px;
}
.nt-l8-value-title { font-size: 16px; margin: 0 0 6px; color: #222; }
.nt-l8-value-desc { font-size: 13px; color: #666; margin: 0; line-height: 1.6; }
.nt-l8-bullets { padding-left: 0; list-style: none; margin: 14px 0 0; }
.nt-l8-bullets li { padding: 6px 0 6px 22px; position: relative; }
.nt-l8-bullets li::before { content: "✓"; position: absolute; left: 0; color: var(--nt-primary, #2ec4b6); }
.nt-l8-intent-card { aspect-ratio: 4 / 5; }
.nt-l8-author { display: block; color: #888; font-size: 13px; font-weight: 600; }
.nt-l8-cta { background: var(--nt-primary, #2ec4b6); color: #fff; }
.nt-l8-cta-wrap { padding: 20px; }
.nt-l8-cta-headline { color: #fff; margin: 0 0 12px; }
.nt-l8-cta-para { color: rgba(255,255,255,.9); margin: 0 0 22px; }

/* ---------- Hover states (use --nt-primary-dark for darker shade) ---------- */
.nt-l1-cta:hover .button.primary,
.nt-l3-cta:hover .button.primary,
.nt-l5-cta:hover .button.primary,
.nt-l8-cta:hover .button.primary { background: var(--nt-primary-dark); }

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .nt-mosaic { aspect-ratio: 1 / 1; }
    .nt-l5-step { padding: 12px 6px; }
    .nt-l7-test-row.is-alt { text-align: left; }
}




