/*
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;
}
.absolute-footer{
	border-top: 1px solid #ebebeb;
}
/* =========================================================
   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; }
}

/* ============================================================
   MOSAIC RESPONSIVE FIX (L2, L7)
   Override duplicate rules in child theme that broke mobile:
   - Block C (no MQ) replaced 2-col mobile with 3-col always
   - Block A's min-height:180px forced overflow
   - Tile 1 ended up with both col-span 2 AND row-span 2
   Specificity boost via .nt-mosaic.nt-mosaic so we win without !important.
   ============================================================ */
@media (max-width: 768px) {
    .nt-mosaic.nt-mosaic {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        grid-auto-rows: auto;
        aspect-ratio: auto;
        gap: 8px;
    }
    .nt-mosaic.nt-mosaic > a {
        grid-row: auto;
        grid-column: auto;
        min-height: 0;
        aspect-ratio: 1 / 1;
    }
    /* Tile 1 = full-width hero banner */
    .nt-mosaic.nt-mosaic > a:nth-of-type(1) {
        grid-column: 1 / -1;
        grid-row: auto;
        aspect-ratio: 16 / 9;
    }
    /* Tile 5 = normal small tile (not col-span 2) */
    .nt-mosaic.nt-mosaic > a:nth-of-type(5) {
        grid-column: auto;
        grid-row: auto;
    }
}


/* ============================================================
 * CMC Cloner — Homepage L9 (Slider Hero) layout styles
 * Paste once into child theme style.css. Shared across all
 * cloned sites that use the L9 layout via Build Homepage.
 * Brand color is picked up via --cmc-primary CSS variable
 * (set per-site by the plugin's inline tokens block).
 * ============================================================ */

/* --- Hero slider --- */
.nt-l9-hero-slider .ux-slider-wrapper { margin-bottom: 0 !important; }
.nt-l9-hero-slider .banner-inner       { padding: 0 !important; }
.nt-l9-hero-slider .banner-bg          { filter: brightness(0.85); }

/* Slide 1/2 text-overlay typography */
.nt-l9-hero-slider .text-box-content .nt-eyebrow {
    color: #fff !important;
    opacity: 0.92;
    letter-spacing: 0.18em;
    font-size: 0.78rem;
    text-transform: uppercase;
    font-weight: 700;
    display: inline-block;
    margin-bottom: 14px;
    background: transparent;
}
.nt-l9-hero-slider .text-box-content .nt-l9-slide__title {
    color: #fff !important;
    font-size: clamp(1.7rem, 4vw, 3rem);
    line-height: 1.18;
    font-weight: 700;
    margin: 0 0 14px;
    letter-spacing: -0.01em;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.nt-l9-hero-slider .text-box-content .nt-l9-slide__lead {
    color: #fff;
    opacity: 0.94;
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    line-height: 1.55;
    margin: 0 0 22px;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}

/* --- BrandStory section --- */
.nt-l9-story { padding-top: 48px; padding-bottom: 48px; }
.nt-l9-story-media img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
}
.nt-l9-h2 {
    font-size: clamp(1.3rem, 2.2vw, 1.8rem);
    line-height: 1.25;
    font-weight: 700;
    margin: 0 0 12px;
}
.nt-l9-bullets {
    list-style: none;
    padding-left: 0;
    margin: 14px 0 0;
}
.nt-l9-bullets li {
    padding-left: 22px;
    position: relative;
    margin: 8px 0;
    line-height: 1.55;
}
.nt-l9-bullets li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.65em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--cmc-primary, #2ec4b6);
}

/* --- Featured + Closing CTA --- */
.nt-l9-featured .nt-feat-heading {
    text-align: center;
    margin-bottom: 18px;
}
.nt-l9-cta {
    background: linear-gradient(135deg, var(--cmc-primary, #2ec4b6) 0%, var(--cmc-accent, #2ec4b6) 100%);
    color: #fff;
    text-align: center;
}
.nt-l9-cta-headline {
    color: #fff !important;
    font-size: clamp(1.4rem, 2.2vw, 1.9rem);
    font-weight: 700;
    margin: 0 0 10px;
}
.nt-l9-cta-para {
    color: #fff;
    opacity: 0.92;
    margin: 0 auto 18px;
    max-width: 620px;
}

.footer-contact-infor p{
	margin-bottom: 15px !important;
}

/* ===== Solvioramanor – About Us ===== */
.sv-about { 
  --sv-bg:#faf8f5; --sv-ink:#1f1d1a; --sv-muted:#6b6660; 
  --sv-line:#e6e1d8; --sv-accent:#8a6a3b; --sv-card:#ffffff;
  color:var(--sv-ink); background:var(--sv-bg); line-height:1.7;
}
.sv-about * { box-sizing:border-box; }
.sv-about img { max-width:100%; height:auto; display:block; }

/* Hero */
.sv-hero { 
  position:relative; padding:90px 24px; text-align:center; 
  background:linear-gradient(rgba(31,29,26,.45),rgba(31,29,26,.55)),
    url('https://solvioramanor.shop/wp-content/uploads/2026/05/pexels-artbovich-7061069-1-scaled.jpg') center/cover no-repeat;
  color:#fff;
}
.sv-hero .sv-eyebrow { 
  letter-spacing:.25em; text-transform:uppercase; font-size:.78rem; 
  font-family:Helvetica,Arial,sans-serif; opacity:.85; margin-bottom:14px;
}
.sv-hero h1 { font-size:clamp(2rem,4.5vw,3.2rem); margin:0 0 14px; font-weight:400; letter-spacing:.5px; color: #fff !important;}
.sv-hero p { max-width:640px; margin:0 auto; opacity:.9; font-size:1.05rem;}

/* Layout container */
.sv-wrap { max-width:1100px; margin:0 auto; padding:72px 24px; }

/* Intro: text + image */
.sv-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.sv-grid.reverse { direction:rtl; }
.sv-grid.reverse > * { direction:ltr; }
.sv-grid h2 { 
  font-size:1.9rem; font-weight:400; margin:0 0 18px;
  position:relative; padding-bottom:14px;
}
.sv-grid h2::after {
  content:""; position:absolute; left:0; bottom:0; width:48px; height:2px; background:var(--sv-accent);
}
.sv-grid p { color:var(--sv-ink); margin:0 0 14px;}
.sv-img-frame { 
  border:1px solid var(--sv-line); padding:10px; background:#fff;
  box-shadow:0 20px 40px -25px rgba(0,0,0,.25);
}

/* Section heading center */
.sv-section-head { text-align:center; margin-bottom:48px; }
.sv-section-head span { 
  letter-spacing:.25em; text-transform:uppercase; font-size:.75rem; 
  color:var(--sv-accent); font-family:Helvetica,Arial,sans-serif;
}
.sv-section-head h2 { font-size:2rem; font-weight:400; margin:8px 0 0;}

/* Offer list */
.sv-features { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:30px;}
.sv-feature { 
  background:var(--sv-card); border:1px solid var(--sv-line); 
  padding:32px 26px; text-align:center;
}
.sv-feature .ico {
  width:54px; height:54px; border-radius:50%; margin:0 auto 16px;
  background:var(--sv-bg); border:1px solid var(--sv-line);
  display:flex; align-items:center; justify-content:center;
  color:var(--sv-accent); font-size:1.4rem; font-weight:700; font-family:Georgia,serif;
}
.sv-feature h3 { margin:0 0 10px; font-size:1.1rem; font-weight:600;}
.sv-feature p { margin:0; color:var(--sv-muted); font-size:.97rem;}

/* Commitments */
.sv-commit { background:#fff; border-top:1px solid var(--sv-line); border-bottom:1px solid var(--sv-line);}
.sv-commit-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
.sv-commit-grid article h3 { 
  font-size:1.15rem; font-weight:600; margin:0 0 12px;
  padding-bottom:10px; border-bottom:1px solid var(--sv-line);
}
.sv-commit-grid p { color:var(--sv-muted); margin:0;}

/* Contact card */
.sv-contact { 
  background:#fff; color:#000; padding:64px 24px; text-align:center;
}
.sv-contact h2 { font-size:1.8rem; font-weight:400; margin:0 0 22px;}
.sv-contact p { margin:6px 0; opacity:.9;}
.sv-contact a { color:#000; text-decoration:none; border-bottom:1px solid rgba(232,201,138,.4);}

/* Responsive */
@media (max-width: 860px){
  .sv-grid { grid-template-columns:1fr; gap:32px;}
  .sv-grid.reverse { direction:ltr; }
  .sv-features, .sv-commit-grid { grid-template-columns:1fr; }
  .sv-wrap { padding:56px 20px;}
  .sv-hero { padding:70px 20px;}
}



