/* ==========================================================================
   Viva Cee — Elementor widget layer
   These rules style NATIVE Elementor widgets that carry a `vc-*` class in their
   Advanced → CSS Classes field. The class lands on the widget's outer
   `.elementor-element`, so we target the inner Elementor markup.
   Content, tag and (optionally) native style controls stay fully editable in
   the panel; these rules supply the fluid typography + bespoke look Elementor
   can't express natively.
   ========================================================================== */

/* ---- eyebrow (Heading) ------------------------------------------------- */
.vc-eyebrow .elementor-heading-title{
  font:500 13px/1.4 'Space Grotesk',sans-serif;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0;
}
.vc-eyebrow--ink .elementor-heading-title{color:var(--ink)}
.vc-eyebrow--muted .elementor-heading-title{color:var(--muted)}

/* ---- display + section headings (Heading) ------------------------------ */
.vc-display .elementor-heading-title{
  font:700 clamp(46px,6.6vw,90px)/.96 'Space Grotesk',sans-serif;
  letter-spacing:-.03em;color:var(--ink);margin:0;
}
.vc-display--md .elementor-heading-title{font-size:clamp(44px,6vw,84px);line-height:.98}
.vc-h2 .elementor-heading-title{
  font:700 clamp(34px,4.4vw,58px)/1 'Space Grotesk',sans-serif;
  letter-spacing:-.025em;color:var(--ink);margin:0;
}
.vc-h2--sm .elementor-heading-title{font-size:clamp(28px,3.6vw,46px);line-height:1.02}
.vc-h3 .elementor-heading-title{
  font:600 24px/1.1 'Space Grotesk',sans-serif;color:var(--ink);margin:0;
}

/* ---- meta / mono label (Heading or Text) ------------------------------- */
.vc-meta .elementor-heading-title,
.vc-meta .elementor-widget-container{
  font:12px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.1em;color:var(--muted);text-transform:uppercase;
}

/* ---- lead / body (Text Editor) ----------------------------------------- */
.vc-lead .elementor-widget-container{font-size:19px;line-height:1.6;color:#5a5348;max-width:540px}
.vc-lead .elementor-widget-container p{margin:0 0 1em}
.vc-lead .elementor-widget-container p:last-child{margin-bottom:0}
.vc-body .elementor-widget-container{color:#5a5348;line-height:1.6}
.vc-body .elementor-widget-container p{margin:0 0 1em}
.vc-body .elementor-widget-container p:last-child{margin-bottom:0}
.vc-body strong{color:var(--ink)}

/* ---- stats (Heading + Text pairs) -------------------------------------- */
.vc-stat-num .elementor-heading-title{font:700 34px/1 'Space Grotesk',sans-serif;color:var(--ink)}
.vc-stat-label .elementor-widget-container{font-size:14px;color:var(--muted)}

/* ---- buttons (Button) -------------------------------------------------- */
.vc-btn .elementor-button{
  background:var(--accent);color:#fff;border:none;border-radius:100px;
  padding:12px 22px;font:600 14px/1 'Space Grotesk',sans-serif;
  transition:transform .15s ease,opacity .15s ease;
}
.vc-btn .elementor-button:hover{transform:translateY(-1px);opacity:1}
.vc-btn--ghost .elementor-button{background:transparent;color:var(--ink);border:1px solid var(--line)}
.vc-btn--ghost .elementor-button:hover{border-color:var(--ink)}
.vc-btn--light .elementor-button{background:var(--paper);color:var(--ink)}

/* ---- image (Image) ----------------------------------------------------- */
.vc-img-round img{border-radius:16px;display:block;width:100%}
.vc-gallery-img img{border-radius:8px;aspect-ratio:1;object-fit:cover;width:100%;
  background:var(--paper2);border:1px solid var(--line)}
.vc-gallery-cap .elementor-heading-title{font:500 14px/1.3 'Space Grotesk',sans-serif;color:var(--ink)}
.vc-gallery-sub .elementor-widget-container{font-size:13px;color:var(--muted)}

/* ---- card column (Column with .vc-card) -------------------------------- */
.elementor-column.vc-card > .elementor-widget-wrap,
.e-con.vc-card{
  background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:32px;
}
.elementor-column.vc-card--alt > .elementor-widget-wrap{background:var(--paper2)}
.elementor-column.vc-card--dark > .elementor-widget-wrap{
  background:var(--dark);border-color:rgba(245,240,234,.14);
}
.vc-card--dark .elementor-heading-title{color:var(--paper)}

/* ---- dark section recolour (Section with .vc-section--dark) ------------- */
.vc-section--dark .elementor-heading-title{color:var(--paper)}
.vc-section--dark .vc-lead .elementor-widget-container,
.vc-section--dark .vc-body .elementor-widget-container{color:rgba(245,240,234,.7)}
.vc-section--dark .vc-eyebrow .elementor-heading-title{color:var(--accent)}

/* ---- header / nav ------------------------------------------------------ */
.vc-header{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 92%,transparent)}
.vc-logo .elementor-heading-title{font:700 24px/1 'Space Grotesk',sans-serif;letter-spacing:-.03em;color:var(--ink)}
.vc-nav{display:flex;gap:30px;align-items:center;justify-content:flex-end}
body.viva-cee .vc-nav a{font:500 15px/1 'Space Grotesk',sans-serif;color:var(--ink);text-decoration:none}
body.viva-cee .vc-nav a:hover{color:var(--accent)}

/* ---- promo bar --------------------------------------------------------- */
.vc-promo .elementor-heading-title,.vc-promo p{color:#fff}
.vc-promo-text .elementor-widget-container{color:#fff;font-size:14px;text-align:center}
.vc-promo-text strong{color:#fff}

/* ---- footer ------------------------------------------------------------ */
.vc-footer .elementor-heading-title{color:var(--paper)}
.vc-footer .vc-body .elementor-widget-container{color:rgba(245,240,234,.7)}
body.viva-cee .vc-footer a{color:rgba(245,240,234,.85);text-decoration:none}
body.viva-cee .vc-footer a:hover{color:#fff}
.vc-footlinks{display:flex;flex-direction:column;gap:9px;margin-top:8px}
.vc-eyebrow--muted .elementor-heading-title{color:var(--muted)}

/* ---- numbered credit row ----------------------------------------------- */
.vc-credit{border-bottom:1px solid var(--line);padding-bottom:18px}

/* ---- striped placeholder (HTML widget helper, kept for decorative slots) */
.vc-placeholder{
  aspect-ratio:4/5;border-radius:16px;border:1px solid var(--line);
  background:repeating-linear-gradient(135deg,#e9e2d8 0 13px,#efe9df 13px 26px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  text-align:center;color:var(--muted);
  font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.16em;
}
.vc-placeholder--wide{aspect-ratio:16/10}
.vc-placeholder--square{aspect-ratio:1}
